[jboss-cvs] JBossAS SVN: r112406 - projects/security/security-negotiation/branches/security-negotiation-2.0.x/jboss-negotiation-spnego/src/main/java/org/jboss/security/negotiation/spnego.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 2 17:11:26 EDT 2011


Author: mposolda
Date: 2011-11-02 17:11:26 -0400 (Wed, 02 Nov 2011)
New Revision: 112406

Modified:
   projects/security/security-negotiation/branches/security-negotiation-2.0.x/jboss-negotiation-spnego/src/main/java/org/jboss/security/negotiation/spnego/SPNEGOLoginModule.java
Log:
SECURITY-631 Possibility to choose principal identity from FORM authentication

Modified: projects/security/security-negotiation/branches/security-negotiation-2.0.x/jboss-negotiation-spnego/src/main/java/org/jboss/security/negotiation/spnego/SPNEGOLoginModule.java
===================================================================
--- projects/security/security-negotiation/branches/security-negotiation-2.0.x/jboss-negotiation-spnego/src/main/java/org/jboss/security/negotiation/spnego/SPNEGOLoginModule.java	2011-11-02 20:58:35 UTC (rev 112405)
+++ projects/security/security-negotiation/branches/security-negotiation-2.0.x/jboss-negotiation-spnego/src/main/java/org/jboss/security/negotiation/spnego/SPNEGOLoginModule.java	2011-11-02 21:11:26 UTC (rev 112406)
@@ -204,6 +204,23 @@
       lc.login();
 
       Subject userSubject = lc.getSubject();
+
+      Principal identity = getIdentityFromSubject(userSubject);
+      setIdentity(identity);
+
+      return Boolean.TRUE;
+   }
+   
+   /**
+    * Obtaining identity from subject. This implementation will always use first principal of given subject
+    * but functionality can be overridden by subclasses.
+    *  
+    * @param userSubject subject
+    * @return identity
+    * @throws LoginException
+    */
+   protected Principal getIdentityFromSubject(Subject userSubject) throws LoginException
+   {
       Set principals = userSubject.getPrincipals();
       if (principals.isEmpty())
       {
@@ -213,11 +230,9 @@
       {
          log.warn("Multiple principals returned, using first principal in set.");
       }
-
-      Principal identity = (Principal) principals.iterator().next();
-      setIdentity(identity);
-
-      return Boolean.TRUE;
+      
+	  Principal identity = (Principal) principals.iterator().next();
+	  return identity;
    }
 
    private Object spnegoLogin(NegotiationContext negotiationContext) throws LoginException



More information about the jboss-cvs-commits mailing list