[jboss-cvs] Picketlink SVN: r990 - federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/sts.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jun 13 16:06:16 EDT 2011


Author: anil.saldhana at jboss.com
Date: 2011-06-13 16:06:16 -0400 (Mon, 13 Jun 2011)
New Revision: 990

Modified:
   federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/sts/PicketLinkCoreSTS.java
   federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/sts/SecurityActions.java
Log:
beef up config file processing

Modified: federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/sts/PicketLinkCoreSTS.java
===================================================================
--- federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/sts/PicketLinkCoreSTS.java	2011-06-13 20:01:45 UTC (rev 989)
+++ federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/sts/PicketLinkCoreSTS.java	2011-06-13 20:06:16 UTC (rev 990)
@@ -308,16 +308,42 @@
          if (configurationFile.exists())
             configurationFileURL = configurationFile.toURI().toURL();
          else
+         {
             // if not configuration file was found in the user home, check the context classloader.
-            configurationFileURL = SecurityActions.getContextClassLoader().getResource(fileName);
+            ClassLoader tccl = SecurityActions.getContextClassLoader();
+            configurationFileURL = tccl.getResource(fileName);
+         }
 
          // if no configuration file was found, log a warn message and use default configuration values.
          if (configurationFileURL == null)
          {
-            logger.warn(fileName + " configuration file not found. Using default configuration values");
-            return new PicketLinkSTSConfiguration();
+            logger.warn(fileName + " configuration file not found using TCCL");
+            ClassLoader clazzLoader = SecurityActions.getClassLoader(getClass());
+            configurationFileURL = clazzLoader.getResource(fileName);
          }
 
+         // if no configuration file was found, log a warn message and use default configuration values.
+         if (configurationFileURL == null)
+         {
+            logger.warn(fileName + " configuration file not found using classloader");
+            try
+            {
+               configurationFileURL = new URL(fileName);
+            }
+            catch (Exception e)
+            {
+               return new PicketLinkSTSConfiguration();
+            }
+            finally
+            {
+               if (configurationFileURL == null)
+               {
+                  logger.warn(fileName + " configuration file not found using URL. Using default configuration values");
+                  return new PicketLinkSTSConfiguration();
+               }
+            }
+         }
+
          InputStream stream = configurationFileURL.openStream();
          STSType stsConfig = (STSType) new STSConfigParser().parse(stream);
          STSConfiguration configuration = new PicketLinkSTSConfiguration(stsConfig);

Modified: federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/sts/SecurityActions.java
===================================================================
--- federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/sts/SecurityActions.java	2011-06-13 20:01:45 UTC (rev 989)
+++ federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/sts/SecurityActions.java	2011-06-13 20:06:16 UTC (rev 990)
@@ -54,6 +54,17 @@
       });
    }
 
+   static ClassLoader getClassLoader(final Class<?> clazz)
+   {
+      return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
+      {
+         public ClassLoader run()
+         {
+            return clazz.getClassLoader();
+         }
+      });
+   }
+
    /**
     * <p>
     * Loads a class using the thread context class loader in a privileged block.



More information about the jboss-cvs-commits mailing list