[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