Author: anil.saldhana(a)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)
Show replies by date