[picketlink-commits] Picketlink SVN: r980 - trust/trunk/jbossws/src/main/java/org/picketlink/trust/jbossws/jaas.

picketlink-commits at lists.jboss.org picketlink-commits at lists.jboss.org
Tue Jun 7 15:36:10 EDT 2011


Author: anil.saldhana at jboss.com
Date: 2011-06-07 15:36:09 -0400 (Tue, 07 Jun 2011)
New Revision: 980

Modified:
   trust/trunk/jbossws/src/main/java/org/picketlink/trust/jbossws/jaas/SAMLRoleLoginModule.java
Log:
fallback on the cbh

Modified: trust/trunk/jbossws/src/main/java/org/picketlink/trust/jbossws/jaas/SAMLRoleLoginModule.java
===================================================================
--- trust/trunk/jbossws/src/main/java/org/picketlink/trust/jbossws/jaas/SAMLRoleLoginModule.java	2011-06-07 01:03:28 UTC (rev 979)
+++ trust/trunk/jbossws/src/main/java/org/picketlink/trust/jbossws/jaas/SAMLRoleLoginModule.java	2011-06-07 19:36:09 UTC (rev 980)
@@ -25,11 +25,10 @@
 import java.security.Principal;
 import java.security.acl.Group;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
-import javax.security.auth.Subject;
-import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.NameCallback;
 import javax.security.auth.login.LoginException;
 
 import org.jboss.security.SecurityConstants;
@@ -60,28 +59,13 @@
  */
 public class SAMLRoleLoginModule extends AbstractServerLoginModule
 {  
-   protected Subject theSubject = null;
-   @SuppressWarnings("rawtypes")
-   protected Map sharedState = null;
-   
    @Override
-   public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String, ?> sharedState,
-         Map<String, ?> options)
-   { 
-      super.initialize(subject, callbackHandler, sharedState, options);
-      theSubject = subject;
-      this.sharedState = sharedState;
-   }
-
-   
-   @Override
    public boolean commit() throws LoginException
    { 
       super.loginOk = true;
       return super.commit();
    }
 
-
    /**
     * We first check the shared state for the principal.
     * If not, we look inside the subject for a non-{@code Group} Principal
@@ -92,6 +76,20 @@
       Principal principal =  (Principal) sharedState.get("javax.security.auth.login.name");
       if(principal != null)
          return principal;
+      
+      //Lets try the cbh
+      NameCallback nameCallback = new NameCallback("UserName:");
+      try
+      {
+         callbackHandler.handle(new Callback[] {nameCallback} );
+         String userName = nameCallback.getName();
+         if(StringUtil.isNotNull(userName))
+            return new SimplePrincipal(userName);
+      }
+      catch (Exception e)
+      { 
+         throw new RuntimeException(e);
+      }
 
       Set<Principal> principals = subject.getPrincipals();
       for(Principal p: principals)



More information about the picketlink-commits mailing list