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