You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rs...@apache.org on 2008/03/14 21:14:44 UTC
svn commit: r637243 - in /incubator/tuscany/java/sca:
itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/
modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/
modules/policy-security/src/main/...
Author: rsivaram
Date: Fri Mar 14 13:14:43 2008
New Revision: 637243
URL: http://svn.apache.org/viewvc?rev=637243&view=rev
Log:
Use model resolver to load Jaas callback class
Modified:
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java
incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiBundleActivator.java
incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicy.java
incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyHandler.java
incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java
incubator/tuscany/java/sca/samples/calculator-implementation-policies/src/main/java/calculator/CalculatorClient.java
incubator/tuscany/java/sca/samples/calculator-implementation-policies/src/test/java/calculator/CalculatorTestCase.java
Modified: incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java?rev=637243&r1=637242&r2=637243&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java Fri Mar 14 13:14:43 2008
@@ -36,7 +36,8 @@
"binding-notification-consumer",
"binding-notification-producer",
- "calculator",
+ "calculator",
+ "calculator-implementation-policies",
"calculator-rmi-reference",
"calculator-rmi-service",
"helloworld-ws-service",
@@ -49,10 +50,6 @@
"simple-callback",
"simple-callback-ws",
"supplychain"
-
-
- // FIXME: Policy security Jaas callback classloading
- // "calculator-implementation-policies",
// FIXME: Groovy classloading TUSCANY-2083
// "calculator-script",
Modified: incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiBundleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiBundleActivator.java?rev=637243&r1=637242&r2=637243&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiBundleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiBundleActivator.java Fri Mar 14 13:14:43 2008
@@ -176,16 +176,17 @@
@Override
public Class<?> loadClass(String className) throws ClassNotFoundException {
Class<?> clazz = null;
- for (Bundle bundle : bundles) {
- try {
- clazz = bundle.loadClass(className);
- break;
- } catch (ClassNotFoundException e) {
- } catch (NoClassDefFoundError e) {
+ synchronized (this) {
+ for (Bundle bundle : bundles) {
+ try {
+ clazz = bundle.loadClass(className);
+ break;
+ } catch (ClassNotFoundException e) {
+ } catch (NoClassDefFoundError e) {
+ }
+
}
-
- }
-
+ }
if (clazz != null) {
return clazz;
}
@@ -199,14 +200,16 @@
public Enumeration<URL> getResources(String resName) throws IOException {
HashSet<URL> urlSet = new HashSet<URL>();
Enumeration<URL> urls = null;
- for (Bundle bundle : bundles) {
- urls = bundle.getResources(resName);
- if (urls != null) {
- while (urls.hasMoreElements()) {
- urlSet.add(urls.nextElement());
- }
- }
- }
+ synchronized (this) {
+ for (Bundle bundle : bundles) {
+ urls = bundle.getResources(resName);
+ if (urls != null) {
+ while (urls.hasMoreElements()) {
+ urlSet.add(urls.nextElement());
+ }
+ }
+ }
+ }
if (urlSet.size() > 0)
return Collections.enumeration(urlSet);
return super.getResources(resName);
@@ -215,11 +218,13 @@
@Override
public URL getResource(String resName) {
URL url = null;
- for (Bundle bundle : bundles) {
- url = bundle.getResource(resName);
- if (url != null)
- return url;
- }
+ synchronized (this) {
+ for (Bundle bundle : bundles) {
+ url = bundle.getResource(resName);
+ if (url != null)
+ return url;
+ }
+ }
return super.getResource(resName);
}
Modified: incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicy.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicy.java?rev=637243&r1=637242&r2=637243&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicy.java (original)
+++ incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicy.java Fri Mar 14 13:14:43 2008
@@ -29,6 +29,7 @@
private String configurationName = "other";
private String callbackHandlerClassName;
+ private Class<?> callbackHandlerClass;
public String getCallbackHandlerClassName() {
return callbackHandlerClassName;
@@ -38,6 +39,14 @@
this.callbackHandlerClassName = callbackHandlerClassName;
}
+ public Class<?> getCallbackHandlerClass() {
+ return callbackHandlerClass;
+ }
+
+ public void setCallbackHandlerClass(Class<?> callbackHandlerClass) {
+ this.callbackHandlerClass = callbackHandlerClass;
+ }
+
public QName getSchemaName() {
return NAME;
}
Modified: incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyHandler.java?rev=637243&r1=637242&r2=637243&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyHandler.java (original)
+++ incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyHandler.java Fri Mar 14 13:14:43 2008
@@ -47,7 +47,7 @@
try {
JaasAuthenticationPolicy policy = (JaasAuthenticationPolicy)applicablePolicySet.getPolicies().get(0);
CallbackHandler callbackHandler =
- (CallbackHandler)Class.forName(policy.getCallbackHandlerClassName()).newInstance();
+ (CallbackHandler)policy.getCallbackHandlerClass().newInstance();
LoginContext lc = new LoginContext(policy.getConfigurationName(), callbackHandler);
lc.login();
} catch (Exception e) {
Modified: incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java?rev=637243&r1=637242&r2=637243&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java Fri Mar 14 13:14:43 2008
@@ -29,6 +29,7 @@
import org.apache.tuscany.sca.assembly.xml.Constants;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.ClassReference;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
@@ -111,8 +112,17 @@
return JaasAuthenticationPolicy.class;
}
- public void resolve(JaasAuthenticationPolicy arg0, ModelResolver arg1) throws ContributionResolveException {
+ public void resolve(JaasAuthenticationPolicy policy, ModelResolver resolver) throws ContributionResolveException {
+ if (policy.getCallbackHandlerClassName() != null) {
+ ClassReference classReference = new ClassReference(policy.getCallbackHandlerClassName());
+ classReference = resolver.resolveModel(ClassReference.class, classReference);
+ Class callbackClass = classReference.getJavaClass();
+ if (callbackClass == null) {
+ throw new ContributionResolveException(new ClassNotFoundException(policy.getCallbackHandlerClassName()));
+ }
+ policy.setCallbackHandlerClass(callbackClass);
+ }
}
}
Modified: incubator/tuscany/java/sca/samples/calculator-implementation-policies/src/main/java/calculator/CalculatorClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/calculator-implementation-policies/src/main/java/calculator/CalculatorClient.java?rev=637243&r1=637242&r2=637243&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/calculator-implementation-policies/src/main/java/calculator/CalculatorClient.java (original)
+++ incubator/tuscany/java/sca/samples/calculator-implementation-policies/src/main/java/calculator/CalculatorClient.java Fri Mar 14 13:14:43 2008
@@ -33,7 +33,8 @@
Configuration secConf = Configuration.getConfiguration();
} catch ( java.lang.SecurityException e ) {
if ( e.getMessage().equals("Unable to locate a login configuration") ) {
- System.setProperty("java.security.auth.login.config", "target/classes/CalculatorJass.config");
+ System.setProperty("java.security.auth.login.config",
+ CalculatorClient.class.getClassLoader().getResource("CalculatorJass.config").toString());
} else {
throw e;
}
Modified: incubator/tuscany/java/sca/samples/calculator-implementation-policies/src/test/java/calculator/CalculatorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/calculator-implementation-policies/src/test/java/calculator/CalculatorTestCase.java?rev=637243&r1=637242&r2=637243&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/calculator-implementation-policies/src/test/java/calculator/CalculatorTestCase.java (original)
+++ incubator/tuscany/java/sca/samples/calculator-implementation-policies/src/test/java/calculator/CalculatorTestCase.java Fri Mar 14 13:14:43 2008
@@ -40,7 +40,8 @@
} catch ( java.lang.SecurityException e ) {
//FIXME: We should not compare exception strings as they are localized in various languages
//if ( e.getMessage().equals("Unable to locate a login configuration") ) {
- System.setProperty("java.security.auth.login.config", "target/classes/CalculatorJass.config");
+ System.setProperty("java.security.auth.login.config",
+ this.getClass().getClassLoader().getResource("CalculatorJass.config").toString());
//} else {
// throw e;
//}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org