[jboss-cvs] JBossAS SVN: r58698 - trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 27 19:49:11 EST 2006


Author: remy.maucherat at jboss.com
Date: 2006-11-27 19:49:09 -0500 (Mon, 27 Nov 2006)
New Revision: 58698

Modified:
   trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/JBossContextConfig.java
Log:
- Finish coding according to what WebMetaData currently does.

Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/JBossContextConfig.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/JBossContextConfig.java	2006-11-27 23:55:52 UTC (rev 58697)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/JBossContextConfig.java	2006-11-28 00:49:09 UTC (rev 58698)
@@ -32,6 +32,7 @@
 import org.jboss.metadata.SecurityRoleRefMetaData;
 import org.jboss.metadata.WebMetaData;
 import org.jboss.metadata.WebSecurityMetaData;
+import org.jboss.metadata.WebSecurityMetaData.WebResourceCollection;
 import org.jboss.metadata.web.ErrorPage;
 import org.jboss.metadata.web.Filter;
 import org.jboss.metadata.web.FilterMapping;
@@ -122,23 +123,52 @@
     	
     	// Login configuration
     	LoginConfig loginConfig = metaData.getLoginConfig();
-    	org.apache.catalina.deploy.LoginConfig loginConfig2 =
-    		new org.apache.catalina.deploy.LoginConfig();
-    	loginConfig2.setAuthMethod(loginConfig.getAuthMethod());
-    	loginConfig2.setRealmName(loginConfig.getRealmName());
-    	if (loginConfig.getFormLoginConfig() != null) {
-    		loginConfig2.setLoginPage(loginConfig.getFormLoginConfig().getLoginPage());
-    		loginConfig2.setErrorPage(loginConfig.getFormLoginConfig().getErrorPage());
+    	if (loginConfig != null) {
+    		org.apache.catalina.deploy.LoginConfig loginConfig2 =
+    			new org.apache.catalina.deploy.LoginConfig();
+    		loginConfig2.setAuthMethod(loginConfig.getAuthMethod());
+    		loginConfig2.setRealmName(loginConfig.getRealmName());
+    		if (loginConfig.getFormLoginConfig() != null) {
+    			loginConfig2.setLoginPage(loginConfig.getFormLoginConfig().getLoginPage());
+    			loginConfig2.setErrorPage(loginConfig.getFormLoginConfig().getErrorPage());
+    		}
+    		context.setLoginConfig(loginConfig2);
     	}
     	
     	// FIXME: mime mappings parsing
     	
     	// Security constraints
     	Iterator<WebSecurityMetaData> iterator6 = metaData.getSecurityContraints();
-    	// FIXME: compatibility with everything should be checked
     	while (iterator6.hasNext()) {
     		WebSecurityMetaData value = iterator6.next();
-    		
+    		org.apache.catalina.deploy.SecurityConstraint constraint =
+    			new org.apache.catalina.deploy.SecurityConstraint();
+    		constraint.setUserConstraint(value.getTransportGuarantee());
+    		constraint.setAuthConstraint(value.getAuthConstraint() != null);
+    		if (value.getAuthConstraint() != null) {
+    			// FIXME: there's a duplicate roles field on the WebSecurityMetaData itself
+    			Iterator<String> roles = value.getAuthConstraint().getRoleNames().iterator();
+    			while (roles.hasNext()) {
+    				constraint.addAuthRole(roles.next());
+    			}
+    		}
+    		Iterator<WebResourceCollection> collections = value.getWebResources().values().iterator();
+    		while (collections.hasNext()) {
+    			WebResourceCollection collection = collections.next();
+    			org.apache.catalina.deploy.SecurityCollection collection2 = 
+    				new org.apache.catalina.deploy.SecurityCollection();
+    			collection2.setName(collection.getName());
+    			String[] methods = collection.getHttpMethods();
+    			for (int i = 0; i < methods.length; i++) {
+    				collection2.addMethod(methods[i]);
+    			}
+    			String[] urlPatterns = collection.getUrlPatterns();
+    			for (int i = 0; i < urlPatterns.length; i++) {
+    				collection2.addPattern(urlPatterns[i]);
+    			}
+    			constraint.addCollection(collection2);
+    		}
+    		context.addConstraint(constraint);
     	}
     	
     	// Security roles




More information about the jboss-cvs-commits mailing list