[jboss-cvs] Picketbox SVN: r323 - in trunk: security-spi/spi/src/main/java/org/jboss/security and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Apr 23 21:48:07 EDT 2012
Author: sguilhen at redhat.com
Date: 2012-04-23 21:48:06 -0400 (Mon, 23 Apr 2012)
New Revision: 323
Modified:
trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/callback/JASPICallbackHandler.java
trunk/security-spi/spi/src/main/java/org/jboss/security/SubjectInfo.java
Log:
Fix JASPICallbackHandler to add authenticated principal to Subject. Synchronize access to the identities set in SubjectInfo
Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/callback/JASPICallbackHandler.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/callback/JASPICallbackHandler.java 2012-04-10 01:10:21 UTC (rev 322)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/callback/JASPICallbackHandler.java 2012-04-24 01:48:06 UTC (rev 323)
@@ -92,7 +92,7 @@
}
Subject subject = groupPrincipalCallback.getSubject();
-
+
if( subject != null )
{
currentSC.getSubjectInfo().setAuthenticatedSubject( subject );
@@ -114,11 +114,16 @@
}
Principal callerPrincipal = callerPrincipalCallback.getPrincipal();
+ if (callerPrincipal == null && callerPrincipalCallback.getName() != null)
+ callerPrincipal = new SimplePrincipal(callerPrincipalCallback.getName());
+
if( callerPrincipal != null )
{
+ if (subject != null)
+ subject.getPrincipals().add(callerPrincipal);
Identity principalBasedIdentity = IdentityFactory.getIdentity( callerPrincipal, null );
currentSC.getSubjectInfo().addIdentity( principalBasedIdentity );
- }
+ }
}
else if( callback instanceof PasswordValidationCallback )
{
Modified: trunk/security-spi/spi/src/main/java/org/jboss/security/SubjectInfo.java
===================================================================
--- trunk/security-spi/spi/src/main/java/org/jboss/security/SubjectInfo.java 2012-04-10 01:10:21 UTC (rev 322)
+++ trunk/security-spi/spi/src/main/java/org/jboss/security/SubjectInfo.java 2012-04-24 01:48:06 UTC (rev 323)
@@ -23,6 +23,7 @@
import java.io.Serializable;
import java.security.Principal;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@@ -30,7 +31,7 @@
import org.jboss.security.identity.Identity;
import org.jboss.security.identity.IdentityFactory;
-import org.jboss.security.identity.RoleGroup;
+import org.jboss.security.identity.RoleGroup;
import org.jboss.security.identity.extensions.CredentialIdentityFactory;
@@ -88,7 +89,7 @@
this.roles = roles;
}
- public void addIdentity(Identity id)
+ public synchronized void addIdentity(Identity id)
{
if(identities == null)
identities = new HashSet<Identity>();
@@ -103,7 +104,7 @@
}
@SuppressWarnings("unchecked")
- public <T> T getIdentity(Class<T> clazz)
+ public synchronized <T> T getIdentity(Class<T> clazz)
{
if( clazz == null )
throw new IllegalArgumentException( ErrorCodes.NULL_ARGUMENT + "clazz is null" );
@@ -125,10 +126,10 @@
public Set<Identity> getIdentities()
{
- return this.identities;
+ return Collections.unmodifiableSet(identities);
}
- public void setIdentities(Set<Identity> ids)
+ public synchronized void setIdentities(Set<Identity> ids)
{
if(identities == null)
identities = new HashSet<Identity>();
@@ -139,13 +140,13 @@
* Remove an identity
* @param id
*/
- public void removeIdentity( Identity id )
+ public synchronized void removeIdentity( Identity id )
{
identities.remove( id );
}
@Override
- public String toString()
+ public synchronized String toString()
{
StringBuilder builder = new StringBuilder();
builder.append("Identities=" + this.identities);
More information about the jboss-cvs-commits
mailing list