[jboss-identity-commits] JBoss Identity SVN: r238 - identity-federation/trunk/identity-bindings/src/main/java/org/jboss/identity/federation/bindings/tomcat/idp.

jboss-identity-commits at lists.jboss.org jboss-identity-commits at lists.jboss.org
Thu Jan 22 11:36:05 EST 2009


Author: anil.saldhana at jboss.com
Date: 2009-01-22 11:36:05 -0500 (Thu, 22 Jan 2009)
New Revision: 238

Modified:
   identity-federation/trunk/identity-bindings/src/main/java/org/jboss/identity/federation/bindings/tomcat/idp/IDPRedirectValve.java
Log:
use of role generator

Modified: identity-federation/trunk/identity-bindings/src/main/java/org/jboss/identity/federation/bindings/tomcat/idp/IDPRedirectValve.java
===================================================================
--- identity-federation/trunk/identity-bindings/src/main/java/org/jboss/identity/federation/bindings/tomcat/idp/IDPRedirectValve.java	2009-01-22 06:21:54 UTC (rev 237)
+++ identity-federation/trunk/identity-bindings/src/main/java/org/jboss/identity/federation/bindings/tomcat/idp/IDPRedirectValve.java	2009-01-22 16:36:05 UTC (rev 238)
@@ -26,24 +26,20 @@
 import java.io.InputStream;
 import java.io.StringWriter;
 import java.security.Principal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
 import java.util.List;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.catalina.Role;
-import org.apache.catalina.User;
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
-import org.apache.catalina.realm.GenericPrincipal;
 import org.apache.catalina.valves.ValveBase;
 import org.apache.log4j.Logger;
 import org.jboss.identity.federation.api.saml.v2.common.IDGenerator;
 import org.jboss.identity.federation.api.saml.v2.request.SAML2Request;
 import org.jboss.identity.federation.api.saml.v2.response.SAML2Response;
+import org.jboss.identity.federation.bindings.interfaces.RoleGenerator;
+import org.jboss.identity.federation.bindings.tomcat.TomcatRoleGenerator;
 import org.jboss.identity.federation.bindings.util.HTTPRedirectUtil;
 import org.jboss.identity.federation.bindings.util.RedirectBindingUtil;
 import org.jboss.identity.federation.core.saml.v2.constants.JBossSAMLURIConstants;
@@ -63,6 +59,8 @@
 public class IDPRedirectValve extends ValveBase
 { 
    private static Logger log = Logger.getLogger(IDPRedirectValve.class);
+   
+   private RoleGenerator rg = new TomcatRoleGenerator();
 
    private long assertionValidity = 5000; // 5minutes in seconds
    
@@ -196,7 +194,7 @@
       sp.setResponseDestinationURI(authnRequestType.getAssertionConsumerServiceURL());
       responseType = saml2Response.createResponseType(id, sp, idp, issuerHolder);
       //Add information on the roles
-      List<String> roles = getRoles(userPrincipal);
+      List<String> roles = rg.generateRoles(userPrincipal);
       AssertionType assertion = (AssertionType) responseType.getAssertionOrEncryptedAssertion().get(0);
 
       AttributeStatementType attrStatement = saml2Response.createAttributeStatements(roles);
@@ -216,32 +214,7 @@
 
       return responseType; 
    }
-
-   private List<String> getRoles(Principal tomcatPrincipal)
-   {
-      List<String> userRoles = new ArrayList<String>();
-
-      if(tomcatPrincipal instanceof GenericPrincipal)
-      {
-         GenericPrincipal gp = (GenericPrincipal) tomcatPrincipal;
-         String[] roles = gp.getRoles();
-         if(roles.length > 0)
-            userRoles.addAll(Arrays.asList(roles));
-      }
-      else
-         if(tomcatPrincipal instanceof User)
-         {
-            User tomcatUser = (User) tomcatPrincipal;
-            Iterator<?> iter = tomcatUser.getRoles();
-            while(iter.hasNext())
-            {
-               Role tomcatRole = (Role) iter.next();
-               userRoles.add(tomcatRole.getRolename());
-            }
-         }
-      return userRoles;
-   } 
-
+   
    private String getSAMLMessage(Request request)
    {
       return request.getParameter("SAMLRequest");




More information about the jboss-identity-commits mailing list