[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