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