[picketlink-commits] Picketlink SVN: r1003 - trust/trunk/jbossws/src/main/java/org/picketlink/trust/jbossws/jaas.

picketlink-commits at lists.jboss.org picketlink-commits at lists.jboss.org
Mon Jun 13 21:24:39 EDT 2011


Author: anil.saldhana at jboss.com
Date: 2011-06-13 21:24:38 -0400 (Mon, 13 Jun 2011)
New Revision: 1003

Modified:
   trust/trunk/jbossws/src/main/java/org/picketlink/trust/jbossws/jaas/JBWSTokenIssuingLoginModule.java
Log:
properly handle the handler chain

Modified: trust/trunk/jbossws/src/main/java/org/picketlink/trust/jbossws/jaas/JBWSTokenIssuingLoginModule.java
===================================================================
--- trust/trunk/jbossws/src/main/java/org/picketlink/trust/jbossws/jaas/JBWSTokenIssuingLoginModule.java	2011-06-14 01:14:09 UTC (rev 1002)
+++ trust/trunk/jbossws/src/main/java/org/picketlink/trust/jbossws/jaas/JBWSTokenIssuingLoginModule.java	2011-06-14 01:24:38 UTC (rev 1003)
@@ -152,18 +152,35 @@
          
          String handlerStr = (String) options.get("handlerChain");
          
-         //Lets utilize the login module options
-         if( handlerStr != null && handlerStr.contains("binary"))
+         if(StringUtil.isNotNull(handlerStr))
          {
-            BinaryTokenHandler binaryTokenHandler = new BinaryTokenHandler();
-            
-            handlers.add(binaryTokenHandler);
+            List<String> tokens = StringUtil.tokenize(handlerStr);
+            for(String token: tokens)
+            {
+               if(token.equalsIgnoreCase("binary"))
+               {
+                  BinaryTokenHandler binaryTokenHandler = new BinaryTokenHandler();
+                  handlers.add(binaryTokenHandler);
+               }
+               else if(token.equalsIgnoreCase("saml2"))
+               {
+                  SAML2Handler samlHandler = new SAML2Handler();
+                  handlers.add(samlHandler);
+               } 
+               else
+               {
+                  ClassLoader cl = SecurityActions.getClassLoader(getClass());
+                  try
+                  {
+                     handlers.add((Handler) cl.loadClass(token).newInstance());
+                  }
+                  catch (Exception e)
+                  {
+                     throw new RuntimeException("Unable to instantiate handler:"+token, e);
+                  }
+               }
+            }
          }
-         else if( handlerStr != null && handlerStr.contains("saml2"))
-         {
-            SAML2Handler samlHandler = new SAML2Handler();
-            handlers.add(samlHandler);
-         }
 
          binding.setHandlerChain(handlers);
          



More information about the picketlink-commits mailing list