[jboss-cvs] JBossAS SVN: r62463 - projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/plugins.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Apr 21 02:38:48 EDT 2007
Author: anil.saldhana at jboss.com
Date: 2007-04-21 02:38:48 -0400 (Sat, 21 Apr 2007)
New Revision: 62463
Modified:
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/plugins/JBossSecurityContextUtil.java
Log:
utility methods; needs another pass at cleaning the set/get methods
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/plugins/JBossSecurityContextUtil.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/plugins/JBossSecurityContextUtil.java 2007-04-21 06:37:58 UTC (rev 62462)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/plugins/JBossSecurityContextUtil.java 2007-04-21 06:38:48 UTC (rev 62463)
@@ -25,13 +25,17 @@
import java.security.acl.Group;
import java.util.Map;
+import javax.security.auth.Subject;
+
import org.jboss.security.RunAs;
-import org.jboss.security.RunAsIdentity;
+import org.jboss.security.RunAsIdentity;
import org.jboss.security.SecurityContext;
-import org.jboss.security.SecurityContextUtil;
+import org.jboss.security.SecurityContextUtil;
import org.jboss.security.SubjectInfo;
-import static org.jboss.security.SecurityConstants.*;
+import static org.jboss.security.SecurityConstants.CALLER_RAI_IDENTIFIER;
+import static org.jboss.security.SecurityConstants.RUNAS_IDENTITY_IDENTIFIER;
+import static org.jboss.security.SecurityConstants.ROLES_IDENTIFIER;
//$Id$
@@ -42,34 +46,70 @@
* @version $Revision$
*/
public class JBossSecurityContextUtil extends SecurityContextUtil
-{
+{
+ public JBossSecurityContextUtil(SecurityContext sc)
+ {
+ this.securityContext = sc;
+ }
+
@Override
- public <T> T get(SecurityContext sc, String key)
+ public <T> T get(String key)
{
+ validateSecurityContext();
if(RUNAS_IDENTITY_IDENTIFIER.equals(key))
- return (T)sc.getRunAs();
+ return (T)securityContext.getRunAs();
else
- return (T) sc.getData().get(key);
+ return (T) securityContext.getData().get(key);
}
@Override
- public String getUserName(SubjectInfo subjectInfo)
- {
- Principal p = getUserPrincipal(subjectInfo);
+ public String getUserName()
+ {
+ Principal p = getUserPrincipal();
return p != null ? p.getName() : null;
}
@Override
- public Principal getUserPrincipal(SubjectInfo subjectInfo)
+ public Principal getUserPrincipal()
{
- return subjectInfo.getAuthenticationPrincipal();
+ validateSecurityContext();
+ Principal p = null;
+ SubjectInfo subjectInfo = this.securityContext.getSubjectInfo();
+ if(subjectInfo != null)
+ {
+ p = subjectInfo.getAuthenticationPrincipal();
+ }
+ return p;
}
+
+ public Object getCredential()
+ {
+ validateSecurityContext();
+ Object cred = null;
+ SubjectInfo subjectInfo = this.securityContext.getSubjectInfo();
+ if(subjectInfo != null)
+ {
+ cred = subjectInfo.getAuthenticationCredential();
+ }
+ return cred;
+ }
+
+ public Subject getSubject()
+ {
+ validateSecurityContext();
+ Subject s = null;
+ SubjectInfo subjectInfo = this.securityContext.getSubjectInfo();
+ if(subjectInfo != null)
+ {
+ s = subjectInfo.getAuthenticatedSubject();
+ }
+ return s;
+ }
@Override
- public <T> void set(SecurityContext sc, String key, T obj)
- {
- if(sc instanceof JBossSecurityContext == false)
- throw new IllegalArgumentException("Not JBoss security context:"+sc);
+ public <T> void set(String key, T obj)
+ {
+ validateSecurityContext();
if(key == null)
throw new IllegalArgumentException("Key is null");
if(obj != null)
@@ -80,42 +120,75 @@
throw new IllegalArgumentException("Not Group:"+obj);
}
if(RUNAS_IDENTITY_IDENTIFIER.equals(key))
- setRunAsIdentity(sc,(RunAsIdentity) obj);
+ setRunAsIdentity( (RunAsIdentity) obj);
else
- sc.getData().put(key, obj);
+ securityContext.getData().put(key, obj);
}
@Override
- public <T> T remove(SecurityContext sc, String key)
- {
- if(sc instanceof JBossSecurityContext == false)
- throw new IllegalArgumentException("Not JBoss security context:"+sc);
+ public <T> T remove(String key)
+ {
if(key == null)
throw new IllegalArgumentException("Key is null");
- Map<String,Object> contextMap = sc.getData();
+ Map<String,Object> contextMap = securityContext.getData();
if(RUNAS_IDENTITY_IDENTIFIER.equals(key))
{
- RunAs runAs = sc.getRunAs();
+ RunAs runAs = securityContext.getRunAs();
//Move the caller RAI to current RAI
- sc.setRunAs((RunAs) contextMap.get(CALLER_RAI_IDENTIFIER));
+ securityContext.setRunAs((RunAs) contextMap.get(CALLER_RAI_IDENTIFIER));
//Clear the Caller RAI
contextMap.remove(CALLER_RAI_IDENTIFIER);
return (T) runAs;
}
return (T) contextMap.remove(key);
+ }
+
+ @Override
+ public RunAs getCallerRunAs()
+ {
+ validateSecurityContext();
+ return (RunAs) securityContext.getData().get(CALLER_RAI_IDENTIFIER);
}
-
+
+ @Override
+ public void setCallerRunAs(RunAs runAs)
+ {
+ validateSecurityContext();
+ securityContext.getData().put(CALLER_RAI_IDENTIFIER, runAs);
+ }
+
//PRIVATE METHODS
- private void setRunAsIdentity(SecurityContext sc,RunAsIdentity rai)
+ private void setRunAsIdentity(RunAsIdentity rai)
{
- Map<String,Object> contextMap = sc.getData();
+ Map<String,Object> contextMap = securityContext.getData();
//Move the current RAI on the sc into the caller rai
- RunAs currentRA = sc.getRunAs();
+ RunAs currentRA = securityContext.getRunAs();
contextMap.put(CALLER_RAI_IDENTIFIER, currentRA);
- sc.setRunAs(rai);
- //contextMap.put(RUNAS_IDENTITY_IDENTIFIER, rai);
+ securityContext.setRunAs(rai);
}
+
+
+ @Override
+ public <T> T getRoles()
+ {
+ validateSecurityContext();
+ return (T) securityContext.getData().get(ROLES_IDENTIFIER);
+ }
+
+ @Override
+ public <T> void setRoles(T roles)
+ {
+ validateSecurityContext();
+ securityContext.getData().put(ROLES_IDENTIFIER, roles);
+ }
+
+ // Private Methods
+ private void validateSecurityContext()
+ {
+ if(securityContext == null)
+ throw new IllegalStateException("SecurityContext is null: set it on the util");
+ }
}
More information about the jboss-cvs-commits
mailing list