You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2008/08/06 00:24:45 UTC
svn commit: r682995 - in /geronimo/sandbox/djencks/jetty7: ./
geronimo-jetty7-builder/
geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty6/
geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/
geronimo-jetty7-builder/src/main/...
Author: djencks
Date: Tue Aug 5 15:24:44 2008
New Revision: 682995
URL: http://svn.apache.org/viewvc?rev=682995&view=rev
Log:
intermediate commit to enable further cleanup
Added:
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/
- copied from r674670, geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty6/
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/
- copied from r674670, geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty6/
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/jaspi1/
- copied from r674670, geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/war1/
geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/AuthConfigProviderHandlerFactory.java (contents, props changed)
- copied, changed from r675561, geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/ServerAuthConfigGBean.java
Removed:
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty6/
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty6/
Modified:
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/pom.xml
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilder.java
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/xsd/geronimo-jetty-2.0.2.xsd
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/xsdconfig/xmlconfig.xml
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Filter1.java
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Filter2.java
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Servlet1.java
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Servlet2.java
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilderTest.java
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/MockResourceEnvironmentSetter.java
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/PlanParsingTest.java
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/StartupOrderComparatorTest.java
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/jaspi1/WEB-INF/geronimo-web.xml
geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/jaspi1/WEB-INF/web.xml
geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyWebAppContext.java
geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/TwistyWebAppContext.java
geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/ServerAuthConfigGBean.java
geronimo/sandbox/djencks/jetty7/jetty7/pom.xml
geronimo/sandbox/djencks/jetty7/pom.xml
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/pom.xml?rev=682995&r1=682994&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/pom.xml (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/pom.xml Tue Aug 5 15:24:44 2008
@@ -58,6 +58,13 @@
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.components</groupId>
+ <artifactId>geronimo-jaspi</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
</dependencies>
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilder.java?rev=682995&r1=674670&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilder.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilder.java Tue Aug 5 15:24:44 2008
@@ -15,11 +15,12 @@
* limitations under the License.
*/
-package org.apache.geronimo.jetty6.deployment;
+package org.apache.geronimo.jetty7.deployment;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.StringWriter;
import static java.lang.Boolean.FALSE;
import static java.lang.Boolean.TRUE;
import java.net.URL;
@@ -37,11 +38,19 @@
import java.util.jar.JarFile;
import javax.management.ObjectName;
+import javax.security.auth.message.module.ServerAuthModule;
import javax.servlet.Servlet;
+import javax.xml.bind.JAXBException;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.geronimo.common.DeploymentException;
+import org.apache.geronimo.components.jaspi.model.AuthModuleType;
+import org.apache.geronimo.components.jaspi.model.ConfigProviderType;
+import org.apache.geronimo.components.jaspi.model.JaspiXmlUtil;
+import org.apache.geronimo.components.jaspi.model.ServerAuthConfigType;
+import org.apache.geronimo.components.jaspi.model.ServerAuthContextType;
import org.apache.geronimo.deployment.ModuleIDBuilder;
import org.apache.geronimo.deployment.NamespaceDrivenBuilder;
import org.apache.geronimo.deployment.NamespaceDrivenBuilderCollection;
@@ -64,14 +73,15 @@
import org.apache.geronimo.j2ee.deployment.WebServiceBuilder;
import org.apache.geronimo.j2ee.deployment.annotation.AnnotatedWebApp;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
-import org.apache.geronimo.jetty6.Host;
-import org.apache.geronimo.jetty6.JettyDefaultServletHolder;
-import org.apache.geronimo.jetty6.JettyFilterHolder;
-import org.apache.geronimo.jetty6.JettyFilterMapping;
-import org.apache.geronimo.jetty6.JettyServletHolder;
-import org.apache.geronimo.jetty6.JettyWebAppContext;
-import org.apache.geronimo.jetty6.NonAuthenticator;
-import org.apache.geronimo.jetty6.JettyJspServletHolder;
+import org.apache.geronimo.jetty7.Host;
+import org.apache.geronimo.jetty7.JettyDefaultServletHolder;
+import org.apache.geronimo.jetty7.JettyFilterHolder;
+import org.apache.geronimo.jetty7.JettyFilterMapping;
+import org.apache.geronimo.jetty7.JettyJspServletHolder;
+import org.apache.geronimo.jetty7.JettyServletHolder;
+import org.apache.geronimo.jetty7.JettyWebAppContext;
+import org.apache.geronimo.jetty7.security.AuthConfigProviderHandlerFactory;
+import org.apache.geronimo.jetty7.security.ServerAuthConfigGBean;
import org.apache.geronimo.kernel.GBeanAlreadyExistsException;
import org.apache.geronimo.kernel.GBeanNotFoundException;
import org.apache.geronimo.kernel.Kernel;
@@ -82,9 +92,13 @@
import org.apache.geronimo.naming.deployment.GBeanResourceEnvironmentBuilder;
import org.apache.geronimo.naming.deployment.ResourceEnvironmentSetter;
import org.apache.geronimo.security.jacc.ComponentPermissions;
+import org.apache.geronimo.security.jaspi.AuthConfigProviderGBean;
+import org.apache.geronimo.security.jaspi.ServerAuthContextGBean;
+import org.apache.geronimo.security.jaspi.ServerAuthModuleGBean;
import org.apache.geronimo.web.deployment.GenericToSpecificPlanConverter;
import org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder;
import org.apache.geronimo.xbeans.geronimo.j2ee.GerClusteringDocument;
+import org.apache.geronimo.xbeans.geronimo.web.jetty.JettyAuthenticationType;
import org.apache.geronimo.xbeans.geronimo.web.jetty.JettyWebAppDocument;
import org.apache.geronimo.xbeans.geronimo.web.jetty.JettyWebAppType;
import org.apache.geronimo.xbeans.geronimo.web.jetty.config.GerJettyDocument;
@@ -94,6 +108,7 @@
import org.apache.geronimo.xbeans.javaee.FilterType;
import org.apache.geronimo.xbeans.javaee.FormLoginConfigType;
import org.apache.geronimo.xbeans.javaee.JspConfigType;
+import org.apache.geronimo.xbeans.javaee.JspPropertyGroupType;
import org.apache.geronimo.xbeans.javaee.ListenerType;
import org.apache.geronimo.xbeans.javaee.LocaleEncodingMappingListType;
import org.apache.geronimo.xbeans.javaee.LocaleEncodingMappingType;
@@ -107,22 +122,30 @@
import org.apache.geronimo.xbeans.javaee.WebAppDocument;
import org.apache.geronimo.xbeans.javaee.WebAppType;
import org.apache.geronimo.xbeans.javaee.WelcomeFileListType;
-import org.apache.geronimo.xbeans.javaee.JspPropertyGroupType;
+import org.apache.geronimo.schema.ElementConverter;
+import org.apache.geronimo.schema.NamespaceElementConverter;
+import org.apache.geronimo.schema.SchemaConversionUtils;
+import org.apache.xmlbeans.XmlCursor;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
-import org.mortbay.jetty.security.BasicAuthenticator;
-import org.mortbay.jetty.security.ClientCertAuthenticator;
-import org.mortbay.jetty.security.DigestAuthenticator;
-import org.mortbay.jetty.security.FormAuthenticator;
-
+import org.mortbay.jetty.security.jaspi.modules.BasicAuthModule;
+import org.mortbay.jetty.security.jaspi.modules.ClientCertAuthModule;
+import org.mortbay.jetty.security.jaspi.modules.DigestAuthModule;
+import org.mortbay.jetty.security.jaspi.modules.FormAuthModule;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.xml.sax.SAXException;
/**
* @version $Rev:385659 $ $Date$
*/
public class JettyModuleBuilder extends AbstractWebModuleBuilder implements GBeanLifecycle {
private static final Logger log = LoggerFactory.getLogger(JettyModuleBuilder.class);
-
+
private static final Map<String, String> NAMESPACE_UPDATES = new HashMap<String, String>();
+ private static final Map<String, ElementConverter> GERONIMO_SCHEMA_CONVERSIONS = new HashMap<String, ElementConverter>();
+ private static final String JASPI_NAMESPACE = "http://geronimo.apache.org/xml/ns/geronimo-jaspi";
+
static {
NAMESPACE_UPDATES.put("http://geronimo.apache.org/xml/ns/web", "http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1");
NAMESPACE_UPDATES.put("http://geronimo.apache.org/xml/ns/j2ee/web-1.1", "http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1");
@@ -135,6 +158,10 @@
NAMESPACE_UPDATES.put("http://geronimo.apache.org/xml/ns/j2ee/web/jetty-2.0.1", "http://geronimo.apache.org/xml/ns/j2ee/web/jetty-2.0.2");
NAMESPACE_UPDATES.put("http://geronimo.apache.org/xml/ns/web/jetty/config", "http://geronimo.apache.org/xml/ns/web/jetty/config-1.0.1");
NAMESPACE_UPDATES.put("http://geronimo.apache.org/xml/ns/web/jetty/config-1.0", "http://geronimo.apache.org/xml/ns/web/jetty/config-1.0.1");
+ GERONIMO_SCHEMA_CONVERSIONS.put("configProvider", new NamespaceElementConverter(JASPI_NAMESPACE));
+ GERONIMO_SCHEMA_CONVERSIONS.put("serverAuthConfig", new NamespaceElementConverter(JASPI_NAMESPACE));
+ GERONIMO_SCHEMA_CONVERSIONS.put("serverAuthContext", new NamespaceElementConverter(JASPI_NAMESPACE));
+ GERONIMO_SCHEMA_CONVERSIONS.put("serverAuthModule", new NamespaceElementConverter(JASPI_NAMESPACE));
}
private final Environment defaultEnvironment;
@@ -191,10 +218,13 @@
public void doStart() throws Exception {
XmlBeansUtil.registerNamespaceUpdates(NAMESPACE_UPDATES);
+ SchemaConversionUtils.registerNamespaceConversions(GERONIMO_SCHEMA_CONVERSIONS);
}
public void doStop() {
XmlBeansUtil.unregisterNamespaceUpdates(NAMESPACE_UPDATES);
+ //TODO not yet implemented
+// SchemaConversionUtils.unregisterNamespaceConversions(GERONIMO_SCHEMA_CONVERSIONS);
}
public void doFail() {
@@ -316,7 +346,8 @@
try {
rawPlan = XmlBeansUtil.parse(path, getClass().getClassLoader());
} catch (FileNotFoundException e1) {
- log.warn("Web application " + targetPath + " does not contain a WEB-INF/geronimo-web.xml deployment plan. This may or may not be a problem, depending on whether you have things like resource references that need to be resolved. You can also give the deployer a separate deployment plan file on the command line.");
+ log.warn(
+ "Web application " + targetPath + " does not contain a WEB-INF/geronimo-web.xml deployment plan. This may or may not be a problem, depending on whether you have things like resource references that need to be resolved. You can also give the deployer a separate deployment plan file on the command line.");
}
}
}
@@ -360,7 +391,7 @@
WebAppType webApp = (WebAppType) webModule.getSpecDD();
JettyWebAppType jettyWebApp = (JettyWebAppType) webModule.getVendorDD();
- GBeanData webModuleData = new GBeanData(moduleName, JettyWebAppContext.GBEAN_INFO);
+ GBeanData webModuleData = new GBeanData(moduleName, JettyWebAppContext.class);
configureBasicWebModuleAttributes(webApp, jettyWebApp, moduleContext, earContext, webModule, webModuleData);
@@ -448,7 +479,7 @@
}
// configure login configs.
- configureLoginConfigs(module, webApp, jettyWebApp, webModuleData);
+ configureLoginConfigs(earContext, module, webApp, jettyWebApp, webModuleData);
// Make sure that servlet mappings point to available servlets and never add a duplicate pattern.
@@ -547,7 +578,8 @@
private void configureSecurityRealm(EARContext earContext, WebAppType webApp, JettyWebAppType jettyWebApp, GBeanData webModuleData) throws DeploymentException {
AbstractName moduleName = webModuleData.getAbstractName();
if (earContext.getSecurityConfiguration() == null) {
- throw new DeploymentException("You have specified a <security-realm-name> for the webapp " + moduleName + " but no <security> configuration (role mapping) is supplied in the Geronimo plan for the web application (or the Geronimo plan for the EAR if the web app is in an EAR)");
+ throw new DeploymentException(
+ "You have specified a <security-realm-name> for the webapp " + moduleName + " but no <security> configuration (role mapping) is supplied in the Geronimo plan for the web application (or the Geronimo plan for the EAR if the web app is in an EAR)");
}
String securityRealmName = jettyWebApp.getSecurityRealmName().trim();
webModuleData.setAttribute("securityRealmName", securityRealmName);
@@ -737,38 +769,147 @@
}
}
- private void configureLoginConfigs(Module module, WebAppType webApp, JettyWebAppType jettyWebApp, GBeanData webModuleData) throws DeploymentException {
+ private void configureLoginConfigs(EARContext moduleContext, Module module, WebAppType webApp, JettyWebAppType jettyWebApp, GBeanData webModuleData) throws DeploymentException, GBeanAlreadyExistsException {
LoginConfigType[] loginConfigArray = webApp.getLoginConfigArray();
if (loginConfigArray.length > 1) {
throw new DeploymentException("Web app " + module.getName() + " cannot have more than one login-config element. Currently has " + loginConfigArray.length + " login-config elements.");
}
- if (loginConfigArray.length == 1) {
- LoginConfigType loginConfig = loginConfigArray[0];
- if (loginConfig.isSetAuthMethod()) {
- String authMethod = loginConfig.getAuthMethod().getStringValue();
- if ("BASIC".equals(authMethod)) {
- webModuleData.setAttribute("authenticator", new BasicAuthenticator());
- } else if ("DIGEST".equals(authMethod)) {
- webModuleData.setAttribute("authenticator", new DigestAuthenticator());
- } else if ("FORM".equals(authMethod)) {
-
- FormAuthenticator formAuthenticator = new FormAuthenticator();
- webModuleData.setAttribute("authenticator", formAuthenticator);
- if (loginConfig.isSetFormLoginConfig()) {
- FormLoginConfigType formLoginConfig = loginConfig.getFormLoginConfig();
- formAuthenticator.setLoginPage(formLoginConfig.getFormLoginPage().getStringValue());
- formAuthenticator.setErrorPage(formLoginConfig.getFormErrorPage().getStringValue());
+ JettyAuthenticationType authType = jettyWebApp.getAuthentication();
+ if (loginConfigArray.length == 1 || authType != null) {
+ AbstractName factoryName = moduleContext.getNaming().createChildName(module.getModuleName(), "securityHandlerFactory", NameFactory.GERONIMO_SERVICE);
+ webModuleData.setReferencePattern("SecurityHandlerFactory", factoryName);
+ GBeanData securityFactoryData = new GBeanData(factoryName, AuthConfigProviderHandlerFactory.class);
+ securityFactoryData.setAttribute("messageLayer", "Http");
+ securityFactoryData.setAttribute("appContext", webModuleData.getAttribute("contextPath"));
+ moduleContext.addGBean(securityFactoryData);
+
+
+ AbstractName providerName = moduleContext.getNaming().createChildName(module.getModuleName(), "authConfigProvider", NameFactory.GERONIMO_SERVICE);
+ GBeanData authConfigProviderData;
+ if (authType != null) {
+ try {
+ if (authType.isSetConfigProvider()) {
+ authConfigProviderData = new GBeanData(providerName, AuthConfigProviderGBean.class);
+ final XmlCursor xmlCursor = authType.getConfigProvider().newCursor();
+ try {
+ XMLStreamReader reader = xmlCursor.newXMLStreamReader();
+ ConfigProviderType configProviderType = JaspiXmlUtil.loadConfigProvider(reader);
+ StringWriter out = new StringWriter();
+ JaspiXmlUtil.writeConfigProvider(configProviderType, out);
+ authConfigProviderData.setAttribute("config", out.toString());
+ } finally {
+ xmlCursor.dispose();
+ }
+ } else if (authType.isSetServerAuthConfig()) {
+ authConfigProviderData = new GBeanData(providerName, ServerAuthConfigGBean.class);
+ final XmlCursor xmlCursor = authType.getServerAuthConfig().newCursor();
+ try {
+ XMLStreamReader reader = xmlCursor.newXMLStreamReader();
+ ServerAuthConfigType serverAuthConfigType = JaspiXmlUtil.loadServerAuthConfig(reader);
+ StringWriter out = new StringWriter();
+ JaspiXmlUtil.writeServerAuthConfig(serverAuthConfigType, out);
+ authConfigProviderData.setAttribute("config", out.toString());
+ } finally {
+ xmlCursor.dispose();
+ }
+ } else if (authType.isSetServerAuthContext()) {
+ authConfigProviderData = new GBeanData(providerName, ServerAuthContextGBean.class);
+ final XmlCursor xmlCursor = authType.getServerAuthContext().newCursor();
+ try {
+ XMLStreamReader reader = xmlCursor.newXMLStreamReader();
+ ServerAuthContextType serverAuthContextType = JaspiXmlUtil.loadServerAuthContext(reader);
+ StringWriter out = new StringWriter();
+ JaspiXmlUtil.writeServerAuthContext(serverAuthContextType, out);
+ authConfigProviderData.setAttribute("config", out.toString());
+ } finally {
+ xmlCursor.dispose();
+ }
+ } else if (authType.isSetServerAuthModule()) {
+ authConfigProviderData = new GBeanData(providerName, ServerAuthModuleGBean.class);
+ final XmlCursor xmlCursor = authType.getServerAuthModule().newCursor();
+ try {
+ XMLStreamReader reader = xmlCursor.newXMLStreamReader();
+ AuthModuleType<ServerAuthModule> authModuleType = JaspiXmlUtil.loadServerAuthModule(reader);
+ StringWriter out = new StringWriter();
+ JaspiXmlUtil.writeServerAuthModule(authModuleType, out);
+ authConfigProviderData.setAttribute("config", out.toString());
+ } finally {
+ xmlCursor.dispose();
+ }
+ } else {
+ throw new IllegalStateException("can't happen");
}
- } else if ("CLIENT-CERT".equals(authMethod)) {
- webModuleData.setAttribute("authenticator", new ClientCertAuthenticator());
+ } catch (ParserConfigurationException e) {
+ throw new DeploymentException("Could not read auth config", e);
+ } catch (IOException e) {
+ throw new DeploymentException("Could not read auth config", e);
+ } catch (SAXException e) {
+ throw new DeploymentException("Could not read auth config", e);
+ } catch (JAXBException e) {
+ throw new DeploymentException("Could not read auth config", e);
+ } catch (XMLStreamException e) {
+ throw new DeploymentException("Could not read auth config", e);
}
- }
- if (loginConfig.isSetRealmName()) {
- webModuleData.setAttribute("realmName", loginConfig.getRealmName().getStringValue());
- }
- } else if (jettyWebApp.isSetSecurityRealmName()) {
- webModuleData.setAttribute("authenticator", new NonAuthenticator());
+ } else {
+ LoginConfigType loginConfig = loginConfigArray[0];
+ if (loginConfig.isSetAuthMethod()) {
+ authConfigProviderData = new GBeanData(providerName, ServerAuthModuleGBean.class);
+ authConfigProviderData.setAttribute("messageLayer", "Http");
+ authConfigProviderData.setAttribute("appContext", webModuleData.getAttribute("contextPath"));
+ //TODO ??
+ authConfigProviderData.setAttribute("authenticationID", webModuleData.getAttribute("contextRoot"));
+
+ AuthModuleType<ServerAuthModule> authModuleType = new AuthModuleType<ServerAuthModule>();
+ String authMethod = loginConfig.getAuthMethod().getStringValue();
+ if ("BASIC".equals(authMethod)) {
+ authModuleType.setClassName(BasicAuthModule.class.getName());
+ //TODO set realm name?
+// webModuleData.setAttribute("authenticator", new BasicAuthenticator());
+ } else if ("DIGEST".equals(authMethod)) {
+ authModuleType.setClassName(DigestAuthModule.class.getName());
+ //TODO set realm name?
+// webModuleData.setAttribute("authenticator", new DigestAuthenticator());
+ } else if ("FORM".equals(authMethod)) {
+ authModuleType.setClassName(FormAuthModule.class.getName());
+// FormAuthenticator formAuthenticator = new FormAuthenticator();
+// webModuleData.setAttribute("authenticator", formAuthenticator);
+ if (loginConfig.isSetFormLoginConfig()) {
+ FormLoginConfigType formLoginConfig = loginConfig.getFormLoginConfig();
+ Map<String, String> options = new HashMap<String, String>();
+ options.put(FormAuthModule.LOGIN_PAGE_KEY, formLoginConfig.getFormLoginPage().getStringValue());
+ options.put(FormAuthModule.ERROR_PAGE_KEY, formLoginConfig.getFormErrorPage().getStringValue());
+ authModuleType.setOptions(options);
+// formAuthenticator.setLoginPage(formLoginConfig.getFormLoginPage().getStringValue());
+// formAuthenticator.setErrorPage(formLoginConfig.getFormErrorPage().getStringValue());
+ }
+ } else if ("CLIENT-CERT".equals(authMethod)) {
+ authModuleType.setClassName(ClientCertAuthModule.class.getName());
+// webModuleData.setAttribute("authenticator", new ClientCertAuthenticator());
+ } else {
+ throw new DeploymentException("unrecognized auth method, use jaspi to configure: " + authMethod);
+ }
+
+ StringWriter out = new StringWriter();
+ try {
+ JaspiXmlUtil.writeServerAuthModule(authModuleType, out);
+ authConfigProviderData.setAttribute("config", out.toString());
+ } catch (XMLStreamException e) {
+ throw new DeploymentException("Could not write auth module configuration", e);
+ } catch (JAXBException e) {
+ throw new DeploymentException("Could not write auth module configuration", e);
+ }
+ } else {
+ throw new DeploymentException("No auth method configured and no jaspi configured");
+ }
+ if (loginConfig.isSetRealmName()) {
+ webModuleData.setAttribute("realmName", loginConfig.getRealmName().getStringValue());
+ }
+ }
+ moduleContext.addGBean(authConfigProviderData);
+ securityFactoryData.addDependency(providerName);
+// } else if (jettyWebApp.isSetSecurityRealmName()) {
+// webModuleData.setAttribute("authenticator", new NonAuthenticator());
}
}
@@ -783,7 +924,7 @@
for (TaglibType taglib : tagLibArray) {
tagLibMap.put(taglib.getTaglibUri().getStringValue().trim(), taglib.getTaglibLocation().getStringValue().trim());
}
- for (JspPropertyGroupType propertyGroup: aJspConfigArray.getJspPropertyGroupArray()) {
+ for (JspPropertyGroupType propertyGroup : aJspConfigArray.getJspPropertyGroupArray()) {
UrlPatternType[] urlPatterns = propertyGroup.getUrlPatternArray();
addMappingsForServlet(jspServletName, urlPatterns, knownServletMappings, servletMappings);
}
@@ -913,7 +1054,7 @@
// reference to the previous GBean. The kernel will ensure
// that each "previous" GBean is running before it starts any
// other GBeans that reference it. See also
- // o.a.g.jetty6.JettyFilterMapping which provided the example
+ // o.a.g.jetty7.JettyFilterMapping which provided the example
// of how to do this.
// http://issues.apache.org/jira/browse/GERONIMO-645
AbstractName previousServlet = null;
@@ -924,12 +1065,12 @@
}
/**
- * @param webModuleName AbstractName of the web module
- * @param module the web module being added
+ * @param webModuleName AbstractName of the web module
+ * @param module the web module being added
* @param previousServlet the servlet to start before this one in init order
- * @param servletType XMLObject specifying the servlet configuration
+ * @param servletType XMLObject specifying the servlet configuration
* @param servletMappings Map of servlet name to set of ServletMapping strings for this web app
- * @param moduleContext deployment context for this module
+ * @param moduleContext deployment context for this module
* @return AbstractName of servlet gbean added
* @throws DeploymentException if something goes wrong
*/
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/xsd/geronimo-jetty-2.0.2.xsd
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/xsd/geronimo-jetty-2.0.2.xsd?rev=682995&r1=682994&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/xsd/geronimo-jetty-2.0.2.xsd (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/xsd/geronimo-jetty-2.0.2.xsd Tue Aug 5 15:24:44 2008
@@ -23,6 +23,7 @@
xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"
xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0"
+ xmlns:jaspi="http://geronimo.apache.org/xml/ns/geronimo-jaspi"
xmlns:ee="http://java.sun.com/xml/ns/persistence"
xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
attributeFormDefault="unqualified" version="1.0">
@@ -83,6 +84,7 @@
</xs:import>
<xs:import namespace="http://java.sun.com/xml/ns/persistence" schemaLocation="http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"/>
+ <xs:import namespace="http://geronimo.apache.org/xml/ns/geronimo-jaspi" schemaLocation="geronimo-jaspi.xsd"/>
<xs:element name="web-app" type="web:web-appType">
<xs:annotation>
@@ -219,6 +221,16 @@
</xs:documentation>
</xs:annotation>
</xs:element>
+ <xs:element name="authentication" type="web:authenticationType" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>
+ The authentication element provides configuration for a specific
+ jaspi AuthConfigProvider, ServerAuthConfig, ServerAuthContext, or ServerAuthModule
+ to be used for authentication rather than a standard authentication method configured
+ in web.xml.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
<xs:element ref="app:security" minOccurs="0">
<xs:annotation>
<xs:documentation>
@@ -243,4 +255,12 @@
</xs:sequence>
</xs:complexType>
+ <xs:complexType name="authenticationType">
+ <xs:choice>
+ <xs:element ref="jaspi:configProvider"/>
+ <xs:element ref="jaspi:serverAuthConfig"/>
+ <xs:element ref="jaspi:serverAuthContext"/>
+ <xs:element ref="jaspi:serverAuthModule"/>
+ </xs:choice>
+ </xs:complexType>
</xs:schema>
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/xsdconfig/xmlconfig.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/xsdconfig/xmlconfig.xml?rev=682995&r1=682994&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/xsdconfig/xmlconfig.xml (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/main/xsdconfig/xmlconfig.xml Tue Aug 5 15:24:44 2008
@@ -26,4 +26,10 @@
<xb:package>org.apache.geronimo.xbeans.geronimo.web.jetty.config</xb:package>
<xb:prefix>Ger</xb:prefix>
</xb:namespace>
+
+ <xb:namespace uri="http://geronimo.apache.org/xml/ns/geronimo-jaspi">
+ <xb:package>org.apache.geronimo.xbeans.geronimo.web.jetty.jaspi</xb:package>
+ <xb:prefix>Jaspi</xb:prefix>
+ </xb:namespace>
+
</xb:config>
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Filter1.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Filter1.java?rev=682995&r1=674670&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Filter1.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Filter1.java Tue Aug 5 15:24:44 2008
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.jetty6.app;
+package org.apache.geronimo.jetty7.app;
import java.io.IOException;
import javax.servlet.Filter;
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Filter2.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Filter2.java?rev=682995&r1=674670&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Filter2.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Filter2.java Tue Aug 5 15:24:44 2008
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.jetty6.app;
+package org.apache.geronimo.jetty7.app;
import java.io.IOException;
import javax.servlet.Filter;
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Servlet1.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Servlet1.java?rev=682995&r1=674670&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Servlet1.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Servlet1.java Tue Aug 5 15:24:44 2008
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.jetty6.app;
+package org.apache.geronimo.jetty7.app;
import java.io.IOException;
import javax.servlet.Servlet;
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Servlet2.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Servlet2.java?rev=682995&r1=674670&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Servlet2.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/app/Servlet2.java Tue Aug 5 15:24:44 2008
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.jetty6.app;
+package org.apache.geronimo.jetty7.app;
import java.io.IOException;
import javax.servlet.Servlet;
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilderTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilderTest.java?rev=682995&r1=674670&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilderTest.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilderTest.java Tue Aug 5 15:24:44 2008
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.jetty6.deployment;
+package org.apache.geronimo.jetty7.deployment;
import java.io.File;
import java.io.IOException;
@@ -50,8 +50,9 @@
import org.apache.geronimo.j2ee.deployment.ModuleBuilderExtension;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.j2ee.management.impl.J2EEServerImpl;
-import org.apache.geronimo.jetty6.JettyContainerImpl;
-import org.apache.geronimo.jetty6.connector.HTTPSocketConnector;
+import org.apache.geronimo.jetty7.JettyContainerImpl;
+import org.apache.geronimo.jetty7.deployment.JettyModuleBuilder;
+import org.apache.geronimo.jetty7.connector.HTTPSocketConnector;
import org.apache.geronimo.kernel.Jsr77Naming;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.KernelFactory;
@@ -67,6 +68,7 @@
import org.apache.geronimo.kernel.config.InvalidConfigException;
import org.apache.geronimo.kernel.config.NoSuchConfigException;
import org.apache.geronimo.kernel.config.NullConfigurationStore;
+import org.apache.geronimo.kernel.config.LifecycleException;
import org.apache.geronimo.kernel.management.State;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.repository.ArtifactManager;
@@ -77,9 +79,18 @@
import org.apache.geronimo.kernel.repository.ImportType;
import org.apache.geronimo.kernel.repository.Repository;
import org.apache.geronimo.security.deployment.GeronimoSecurityBuilderImpl;
+import org.apache.geronimo.security.SecurityService;
+import org.apache.geronimo.security.SecurityServiceImpl;
+import org.apache.geronimo.security.jacc.mappingprovider.GeronimoPolicyConfigurationFactory;
+import org.apache.geronimo.security.jacc.mappingprovider.GeronimoPolicy;
import org.apache.geronimo.system.serverinfo.BasicServerInfo;
+import org.apache.geronimo.system.serverinfo.ServerInfo;
import org.apache.geronimo.transaction.manager.GeronimoTransactionManagerGBean;
import org.apache.geronimo.xbeans.geronimo.j2ee.GerSecurityDocument;
+import org.apache.geronimo.schema.ElementConverter;
+import org.apache.geronimo.schema.SecurityElementConverter;
+import org.apache.geronimo.schema.NamespaceElementConverter;
+import org.apache.geronimo.schema.SchemaConversionUtils;
import org.apache.xmlbeans.impl.schema.SchemaTypeImpl;
/**
@@ -102,77 +113,84 @@
private ConfigurationStore configStore;
public void testDeployWar4() throws Exception {
- File outputPath = new File(BASEDIR, "target/test-resources/deployables/war4");
- recursiveDelete(outputPath);
- outputPath.mkdirs();
- new File(outputPath, "war").mkdir();
- File path = new File(BASEDIR, "src/test/resources/deployables/war4");
- UnpackedJarFile jarFile = new UnpackedJarFile(path);
- Module module = builder.createModule(null, jarFile, kernel.getNaming(), new ModuleIDBuilder());
- Repository repository = null;
-
- AbstractName moduleName = module.getModuleName();
- EARContext earContext = createEARContext(outputPath, defaultEnvironment, repository, configStore, moduleName);
- module.setEarContext(earContext);
- module.setRootEarContext(earContext);
- builder.initContext(earContext, module, cl);
- builder.addGBeans(earContext, module, cl, Collections.EMPTY_SET);
- ConfigurationData configurationData = earContext.getConfigurationData();
- earContext.close();
- module.close();
-
- Artifact configurationId = configurationData.getId();
- configurationManager.loadConfiguration(configurationData);
- Configuration configuration = configurationManager.getConfiguration(configurationId);
- configurationManager.startConfiguration(configurationId);
+ String appName = "war4";
+ FakeEarBuilder fake = new FakeEarBuilder(appName);
- assertEquals(State.RUNNING_INDEX, kernel.getGBeanState(moduleName));
- Set names = configuration.findGBeans(new AbstractNameQuery(moduleName.getArtifact(), Collections.EMPTY_MAP));
+ assertEquals(State.RUNNING_INDEX, kernel.getGBeanState(fake.moduleName));
+ Set names = fake.configuration.findGBeans(new AbstractNameQuery(fake.moduleName.getArtifact(), Collections.EMPTY_MAP));
log.debug("names: " + names);
for (Iterator iterator = names.iterator(); iterator.hasNext();) {
AbstractName objectName = (AbstractName) iterator.next();
assertEquals(State.RUNNING_INDEX, kernel.getGBeanState(objectName));
}
- configurationManager.stopConfiguration(configurationId);
- configurationManager.unloadConfiguration(configurationId);
+ configurationManager.stopConfiguration(fake.configurationId);
+ configurationManager.unloadConfiguration(fake.configurationId);
}
public void testContextRootWithSpaces() throws Exception {
- File outputPath = new File(BASEDIR, "target/test-resources/deployables/war-spaces-in-context");
- recursiveDelete(outputPath);
- outputPath.mkdirs();
- new File(outputPath, "war").mkdir();
- File path = new File(BASEDIR, "src/test/resources/deployables/war-spaces-in-context");
- UnpackedJarFile jarFile = new UnpackedJarFile(path);
- Module module = builder.createModule(null, jarFile, kernel.getNaming(), new ModuleIDBuilder());
- Repository repository = null;
-
- AbstractName moduleName = module.getModuleName();
- EARContext earContext = createEARContext(outputPath, defaultEnvironment, repository, configStore, moduleName);
- module.setEarContext(earContext);
- module.setRootEarContext(earContext);
- builder.initContext(earContext, module, cl);
- builder.addGBeans(earContext, module, cl, Collections.EMPTY_SET);
- ConfigurationData configurationData = earContext.getConfigurationData();
- earContext.close();
- module.close();
-
- Artifact configurationId = configurationData.getId();
- configurationManager.loadConfiguration(configurationData);
- Configuration configuration = configurationManager.getConfiguration(configurationId);
- configurationManager.startConfiguration(configurationId);
+ String appName = "war-spaces-in-context";
+ FakeEarBuilder fake = new FakeEarBuilder(appName);
- String contextRoot = (String) kernel.getAttribute(moduleName, "contextPath");
+
+ String contextRoot = (String) kernel.getAttribute(fake.moduleName, "contextPath");
assertNotNull(contextRoot);
assertEquals(contextRoot, contextRoot.trim());
- configurationManager.stopConfiguration(configurationId);
- configurationManager.unloadConfiguration(configurationId);
+ configurationManager.stopConfiguration(fake.configurationId);
+ configurationManager.unloadConfiguration(fake.configurationId);
}
+ public void testDeployJaspiConfigProvider() throws Exception {
+ FakeEarBuilder fake = new FakeEarBuilder("jaspi1");
+
+ assertEquals(State.RUNNING_INDEX, kernel.getGBeanState(fake.moduleName));
+ Set names = fake.configuration.findGBeans(new AbstractNameQuery(fake.moduleName.getArtifact(), Collections.EMPTY_MAP));
+ log.debug("names: " + names);
+ for (Iterator iterator = names.iterator(); iterator.hasNext();) {
+ AbstractName objectName = (AbstractName) iterator.next();
+ assertEquals(State.RUNNING_INDEX, kernel.getGBeanState(objectName));
+ }
+
+ configurationManager.stopConfiguration(fake.configurationId);
+ configurationManager.unloadConfiguration(fake.configurationId);
+
+ }
+
+ private class FakeEarBuilder {
+ private AbstractName moduleName;
+ private Artifact configurationId;
+ private Configuration configuration;
+
+ private FakeEarBuilder(String appName) throws IOException, DeploymentException, LifecycleException, NoSuchConfigException {
+ File outputPath = new File(BASEDIR, "target/test-resources/deployables/" + appName);
+ recursiveDelete(outputPath);
+ outputPath.mkdirs();
+ new File(outputPath, "war").mkdir();
+ File path = new File(BASEDIR, "src/test/resources/deployables/" + appName);
+ UnpackedJarFile jarFile = new UnpackedJarFile(path);
+ Module module = builder.createModule(null, jarFile, kernel.getNaming(), new ModuleIDBuilder());
+ Repository repository = null;
+
+ moduleName = module.getModuleName();
+ EARContext earContext = createEARContext(outputPath, defaultEnvironment, repository, configStore, moduleName);
+ module.setEarContext(earContext);
+ module.setRootEarContext(earContext);
+ builder.initContext(earContext, module, cl);
+ builder.addGBeans(earContext, module, cl, Collections.EMPTY_SET);
+ ConfigurationData configurationData = earContext.getConfigurationData();
+ earContext.close();
+ module.close();
+
+ configurationId = configurationData.getId();
+ configurationManager.loadConfiguration(configurationData);
+ configuration = configurationManager.getConfiguration(configurationId);
+ configurationManager.startConfiguration(configurationId);
+ }
+ }
+
private EARContext createEARContext(File outputPath, Environment environment, Repository repository, ConfigurationStore configStore, AbstractName moduleName) throws DeploymentException {
Set repositories = repository == null ? Collections.EMPTY_SET : Collections.singleton(repository);
ArtifactManager artifactManager = new DefaultArtifactManager();
@@ -207,13 +225,19 @@
}
}
}
+ protected void setUpSecurityService() throws Exception {
+ ServerInfo serverInfo = new BasicServerInfo(".");
+
+ new SecurityServiceImpl(cl, serverInfo, GeronimoPolicyConfigurationFactory.class.getName(), GeronimoPolicy.class.getName(), null, null, null, null);
+ }
protected void setUp() throws Exception {
super.setUp();
+ cl = this.getClass().getClassLoader();
+ setUpSecurityService();
((SchemaTypeImpl) GerSecurityDocument.type).addSubstitutionGroupMember(org.apache.geronimo.xbeans.geronimo.security.GerSecurityDocument.type.getDocumentElementName());
- cl = this.getClass().getClassLoader();
kernel = KernelFactory.newInstance().createKernel("test");
kernel.boot();
@@ -292,6 +316,9 @@
new MockResourceEnvironmentSetter(),
kernel);
builder.doStart();
+
+ GeronimoSecurityBuilderImpl securityBuilder = new GeronimoSecurityBuilderImpl(null);
+ securityBuilder.doStart();
}
protected void tearDown() throws Exception {
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/MockResourceEnvironmentSetter.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/MockResourceEnvironmentSetter.java?rev=682995&r1=674670&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/MockResourceEnvironmentSetter.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/MockResourceEnvironmentSetter.java Tue Aug 5 15:24:44 2008
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.geronimo.jetty6.deployment;
+package org.apache.geronimo.jetty7.deployment;
import org.apache.geronimo.naming.deployment.ResourceEnvironmentBuilder;
import org.apache.geronimo.naming.deployment.ResourceEnvironmentSetter;
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/PlanParsingTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/PlanParsingTest.java?rev=682995&r1=674670&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/PlanParsingTest.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/PlanParsingTest.java Tue Aug 5 15:24:44 2008
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.jetty6.deployment;
+package org.apache.geronimo.jetty7.deployment;
import java.io.File;
import java.io.IOException;
@@ -22,6 +22,8 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
+import java.util.Map;
+import java.util.HashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.jar.JarFile;
@@ -41,6 +43,8 @@
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.repository.Environment;
import org.apache.geronimo.schema.SchemaConversionUtils;
+import org.apache.geronimo.schema.ElementConverter;
+import org.apache.geronimo.schema.SecurityElementConverter;
import org.apache.geronimo.security.deployment.GeronimoSecurityBuilderImpl;
import org.apache.geronimo.testsupport.XmlBeansTestSupport;
import org.apache.geronimo.web.deployment.GenericToSpecificPlanConverter;
@@ -50,6 +54,7 @@
import org.apache.geronimo.xbeans.geronimo.web.jetty.config.GerJettyDocument;
import org.apache.geronimo.xbeans.javaee.WebAppDocument;
import org.apache.geronimo.xbeans.javaee.WebAppType;
+import org.apache.geronimo.jetty7.deployment.MockResourceEnvironmentSetter;
import org.apache.xmlbeans.XmlCursor;
import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlException;
@@ -92,6 +97,8 @@
new MockResourceEnvironmentSetter(),
null);
builder.doStart();
+ GeronimoSecurityBuilderImpl securityBuilder = new GeronimoSecurityBuilderImpl(null);
+ securityBuilder.doStart();
}
protected void tearDown() throws Exception {
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/StartupOrderComparatorTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/StartupOrderComparatorTest.java?rev=682995&r1=674670&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/StartupOrderComparatorTest.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/java/org/apache/geronimo/jetty7/deployment/StartupOrderComparatorTest.java Tue Aug 5 15:24:44 2008
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.jetty6.deployment;
+package org.apache.geronimo.jetty7.deployment;
import junit.framework.TestCase;
import org.apache.geronimo.xbeans.javaee.ServletType;
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/jaspi1/WEB-INF/geronimo-web.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/jaspi1/WEB-INF/geronimo-web.xml?rev=682995&r1=674670&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/jaspi1/WEB-INF/geronimo-web.xml (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/jaspi1/WEB-INF/geronimo-web.xml Tue Aug 5 15:24:44 2008
@@ -18,7 +18,8 @@
-->
<jetty:web-app
- xmlns:jetty="http://geronimo.apache.org/xml/ns/j2ee/web-1.1">
+ xmlns:jetty="http://geronimo.apache.org/xml/ns/j2ee/web/jetty-2.0.2"
+ xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1">
<environment>
<moduleId>
<groupId>foo</groupId>
@@ -29,13 +30,36 @@
</environment>
<jetty:context-root>/test</jetty:context-root>
- <jetty:work-dir>myworkdir</jetty:work-dir>
- <!--
- <jetty:security>
- <sec:default-principal>
- <sec:principal class="org.apache.geronimo.security.DefaultPrincipal"
- name="bar"/>
- </sec:default-principal>
- </jetty:security>
- -->
+ <jetty:security-realm-name>demo-properties-realm</jetty:security-realm-name>
+ <jetty:authentication>
+ <configProvider xmlns="http://geronimo.apache.org/xml/ns/geronimo-jaspi">
+ <messageLayer>Http</messageLayer>
+ <appContext>test-app1</appContext>
+ <description>description</description>
+ <clientAuthConfig>
+ <authenticationContextID>authenticationContextID1</authenticationContextID>
+ <protected>true</protected>
+ <clientAuthContext>
+ <clientAuthModule>
+ <className>org.apache.geronimo.components.jaspi.providers.DummyClientAuthModule</className>
+ </clientAuthModule>
+ </clientAuthContext>
+ </clientAuthConfig>
+ <serverAuthConfig>
+ <authenticationContextID>authenticationContextID2</authenticationContextID>
+ <protected>true</protected>
+ <serverAuthContext>
+ <serverAuthModule>
+ <className>org.apache.geronimo.components.jaspi.providers.DummyServerAuthModule</className>
+ </serverAuthModule>
+ </serverAuthContext>
+ </serverAuthConfig>
+ <persistent>true</persistent>
+ </configProvider>
+ </jetty:authentication>
+ <sec:security>
+ <sec:default-principal>
+ <sec:principal class="org.apache.geronimo.security.realm.providers.PropertiesFileUserPrincipal" name="izumi"/>
+ </sec:default-principal>
+ </sec:security>
</jetty:web-app>
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/jaspi1/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/jaspi1/WEB-INF/web.xml?rev=682995&r1=674670&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/jaspi1/WEB-INF/web.xml (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7-builder/src/test/resources/deployables/jaspi1/WEB-INF/web.xml Tue Aug 5 15:24:44 2008
@@ -21,42 +21,36 @@
<web-app>
<description>Test Web Deployment</description>
- <resource-env-ref>
- <resource-env-ref-name>fake-resource-env-ref</resource-env-ref-name>
- <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
- </resource-env-ref>
- <resource-ref>
- <res-ref-name>fake-resource-ref</res-ref-name>
- <res-type>javax.sql.DataSource</res-type>
- <res-auth>Container</res-auth>
- <res-sharing-scope>Shareable</res-sharing-scope>
- </resource-ref>
- <ejb-ref>
- <ejb-ref-name>fake-ejb-ref</ejb-ref-name>
- <ejb-ref-type>Entity</ejb-ref-type>
- <home>some.package.FakeHome</home>
- <remote>some.package.Fake</remote>
- </ejb-ref>
- <ejb-ref>
- <ejb-ref-name>another-ejb-ref</ejb-ref-name>
- <ejb-ref-type>Entity</ejb-ref-type>
- <home>some.package.FakeHome</home>
- <remote>some.package.Fake</remote>
- </ejb-ref>
- <ejb-local-ref>
- <ejb-ref-name>fake-ejb-local-ref</ejb-ref-name>
- <ejb-ref-type>Entity</ejb-ref-type>
- <local-home>some.package.FakeLocalHome</local-home>
- <local>some.package.FakeLocal</local>
- </ejb-local-ref>
- <ejb-local-ref>
- <ejb-ref-name>another-ejb-local-ref</ejb-ref-name>
- <ejb-ref-type>Entity</ejb-ref-type>
- <local-home>some.package.FakeLocalHome</local-home>
- <local>some.package.FakeLocal</local>
- </ejb-local-ref>
-<!-- <service-ref>-->
-<!-- <service-ref-name>fake-service-ref</service-ref-name>-->
-<!-- <service-interface>some.package.FakeService</service-interface>-->
-<!-- </service-ref>-->
+
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>Admin Role</web-resource-name>
+ <url-pattern>/protected/*</url-pattern>
+ </web-resource-collection>
+ <auth-constraint>
+ <role-name>content-administrator</role-name>
+ </auth-constraint>
+ </security-constraint>
+
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>NO ACCESS</web-resource-name>
+ <url-pattern>/auth/logon.html</url-pattern>
+ </web-resource-collection>
+ <auth-constraint/>
+ </security-constraint>
+
+ <login-config>
+ <auth-method>FORM</auth-method>
+ <realm-name>Test JAAS Realm</realm-name>
+ <form-login-config>
+ <form-login-page>/auth/logon.html?param=test</form-login-page>
+ <form-error-page>/auth/logonError.html?param=test</form-error-page>
+ </form-login-config>
+ </login-config>
+
+ <security-role>
+ <role-name>content-administrator</role-name>
+ </security-role>
+
</web-app>
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyWebAppContext.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyWebAppContext.java?rev=682995&r1=682994&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyWebAppContext.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyWebAppContext.java Tue Aug 5 15:24:44 2008
@@ -35,8 +35,6 @@
import javax.transaction.TransactionManager;
import org.apache.geronimo.connector.outbound.connectiontracking.TrackedConnectionAssociator;
-import org.apache.geronimo.gbean.GBeanInfo;
-import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.gbean.GBeanLifecycle;
import org.apache.geronimo.gbean.annotation.GBean;
import org.apache.geronimo.gbean.annotation.ParamAttribute;
@@ -51,7 +49,6 @@
import org.apache.geronimo.jetty7.handler.AbstractImmutableHandler;
import org.apache.geronimo.jetty7.handler.ComponentContextHandler;
import org.apache.geronimo.jetty7.handler.InstanceContextHandler;
-import org.apache.geronimo.jetty7.handler.JettySecurityHandler;
import org.apache.geronimo.jetty7.handler.LifecycleCommand;
import org.apache.geronimo.jetty7.handler.ThreadClassloaderHandler;
import org.apache.geronimo.jetty7.handler.TwistyWebAppContext;
@@ -68,8 +65,8 @@
import org.apache.geronimo.transaction.GeronimoUserTransaction;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.MimeTypes;
-import org.mortbay.jetty.security.Authenticator;
-import org.mortbay.jetty.security.ServletCallbackHandler;
+import org.mortbay.jetty.security.NoSecurityHandler;
+import org.mortbay.jetty.security.SecurityHandler;
import org.mortbay.jetty.servlet.ErrorPageErrorHandler;
import org.mortbay.jetty.servlet.ServletHandler;
import org.mortbay.jetty.servlet.ServletHolder;
@@ -275,13 +272,17 @@
} else {
sessionHandler = new SessionHandler();
}
- JettySecurityHandler securityHandler = null;
+ SecurityHandler securityHandler = null;
// if (securityRealmName != null) {
// InternalJAASJettyRealm internalJAASJettyRealm = jettyContainer.addRealm(securityRealmName);
//wrap jetty realm with something that knows the dumb realmName
// JAASJettyRealm realm = new JAASJettyRealm(realmName, internalJAASJettyRealm);
+ if (securityHandlerFactory != null) {
Subject defaultSubject = this.runAsSource.getDefaultSubject();
securityHandler = securityHandlerFactory.buildSecurityHandler(policyContextID, defaultSubject, runAsSource);
+ } else {
+ securityHandler = new NoSecurityHandler();
+ }
// }
ServletHandler servletHandler = new ServletHandler();
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/TwistyWebAppContext.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/TwistyWebAppContext.java?rev=682995&r1=682994&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/TwistyWebAppContext.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/TwistyWebAppContext.java Tue Aug 5 15:24:44 2008
@@ -22,14 +22,14 @@
import java.io.IOException;
+import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.servlet.ServletException;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.ErrorHandler;
-import org.mortbay.jetty.security.AbstractSecurityHandler;
+import org.mortbay.jetty.security.SecurityHandler;
import org.mortbay.jetty.servlet.ServletHandler;
import org.mortbay.jetty.servlet.SessionHandler;
import org.mortbay.jetty.webapp.WebAppContext;
@@ -42,7 +42,7 @@
private Handler handler;
- public TwistyWebAppContext(AbstractSecurityHandler securityHandler, SessionHandler sessionHandler, ServletHandler servletHandler, ErrorHandler errorHandler) {
+ public TwistyWebAppContext(SecurityHandler securityHandler, SessionHandler sessionHandler, ServletHandler servletHandler, ErrorHandler errorHandler) {
super(securityHandler, sessionHandler, servletHandler, errorHandler);
}
Copied: geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/AuthConfigProviderHandlerFactory.java (from r675561, geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/ServerAuthConfigGBean.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/AuthConfigProviderHandlerFactory.java?p2=geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/AuthConfigProviderHandlerFactory.java&p1=geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/ServerAuthConfigGBean.java&r1=675561&r2=682995&rev=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/ServerAuthConfigGBean.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/AuthConfigProviderHandlerFactory.java Tue Aug 5 15:24:44 2008
@@ -26,30 +26,47 @@
import javax.security.auth.Subject;
import javax.security.auth.message.config.ServerAuthConfig;
import javax.security.auth.message.config.ServerAuthContext;
+import javax.security.auth.message.config.AuthConfigFactory;
+import javax.security.auth.message.config.AuthConfigProvider;
+import javax.security.auth.message.config.RegistrationListener;
+import javax.security.auth.message.AuthException;
import org.apache.geronimo.jetty7.handler.JettySecurityHandler;
import org.apache.geronimo.security.jacc.RunAsSource;
+import org.apache.geronimo.gbean.annotation.GBean;
+import org.apache.geronimo.gbean.annotation.ParamAttribute;
import org.mortbay.jetty.security.ServletCallbackHandler;
import org.mortbay.jetty.security.jaspi.SimpleAuthConfig;
/**
- * @version $Rev:$ $Date:$
+ * Fetches a ServerAuthConfig out of the AuthConfigFactory
+ *
+ * @version $Rev$ $Date$
*/
-public class ServerAuthConfigGBean implements SecurityHandlerFactory {
- private ServerAuthConfig serverAuthConfig;
- private ServletCallbackHandler servletCallbackHandler = new ServletCallbackHandler();
- private Map authConfigProperties = new HashMap<Object, Object>();
- private Subject serviceSubject = null;
+@GBean
+public class AuthConfigProviderHandlerFactory implements SecurityHandlerFactory {
-
- public ServerAuthConfigGBean(ServletCallbackHandler servletCallbackHandler, ServerAuthContext serverAuthContext) {
- this.servletCallbackHandler = servletCallbackHandler;
- this.serverAuthConfig = new SimpleAuthConfig(null, serverAuthContext);
+ private final ServerAuthConfig serverAuthConfig;
+ private final ServletCallbackHandler servletCallbackHandler = new ServletCallbackHandler();
+ private final Map authConfigProperties = new HashMap<Object, Object>();
+ private final Subject serviceSubject = null;
+
+
+ public AuthConfigProviderHandlerFactory(@ParamAttribute(name = "messageLayer") String messageLayer,
+ @ParamAttribute(name = "appContext") String appContext) throws AuthException {
+ AuthConfigFactory authConfigFactory = AuthConfigFactory.getFactory();
+ RegistrationListener listener = new RegistrationListener() {
+
+ public void notify(String layer, String appContext) {
+ }
+ };
+ AuthConfigProvider authConfigProvider = authConfigFactory.getConfigProvider(messageLayer, appContext, listener);
+ this.serverAuthConfig = authConfigProvider.getServerAuthConfig(messageLayer, appContext, servletCallbackHandler);
}
public JettySecurityHandler buildSecurityHandler(String policyContextID, Subject defaultSubject, RunAsSource runAsSource) {
return new JettySecurityHandler(policyContextID, defaultSubject, runAsSource, serverAuthConfig, serviceSubject, authConfigProperties, servletCallbackHandler);
}
-}
+}
\ No newline at end of file
Propchange: geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/AuthConfigProviderHandlerFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/AuthConfigProviderHandlerFactory.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/AuthConfigProviderHandlerFactory.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/ServerAuthConfigGBean.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/ServerAuthConfigGBean.java?rev=682995&r1=682994&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/ServerAuthConfigGBean.java (original)
+++ geronimo/sandbox/djencks/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/ServerAuthConfigGBean.java Tue Aug 5 15:24:44 2008
@@ -33,7 +33,9 @@
import org.mortbay.jetty.security.jaspi.SimpleAuthConfig;
/**
- * @version $Rev:$ $Date:$
+ * Wraps a supplied ServerAuthContext in a ServerAuthConfig instance. Mostly for testing...
+ *
+ * @version $Rev$ $Date$
*/
public class ServerAuthConfigGBean implements SecurityHandlerFactory {
Modified: geronimo/sandbox/djencks/jetty7/jetty7/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/jetty7/pom.xml?rev=682995&r1=682994&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/jetty7/pom.xml (original)
+++ geronimo/sandbox/djencks/jetty7/jetty7/pom.xml Tue Aug 5 15:24:44 2008
@@ -96,7 +96,7 @@
<dependency>
<groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty-sslengine</artifactId>
+ <artifactId>jetty-ssl</artifactId>
</dependency>
<dependency>
@@ -110,6 +110,18 @@
<type>car</type>
<version>${version}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jaspi_1.0_spec</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.components</groupId>
+ <artifactId>geronimo-jaspi</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+
</dependencies>
<build>
@@ -160,7 +172,7 @@
</dependency>
<dependency start="true">
<groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty-sslengine</artifactId>
+ <artifactId>jetty-ssl</artifactId>
<type>jar</type>
</dependency>
<dependency start="true">
@@ -173,6 +185,15 @@
<artifactId>webservices-common</artifactId>
<type>car</type>
</dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jaspi_1.0_spec</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.components</groupId>
+ <artifactId>geronimo-jaspi</artifactId>
+ </dependency>
</dependencies>
<instance>
<plugin-artifact>
Modified: geronimo/sandbox/djencks/jetty7/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/jetty7/pom.xml?rev=682995&r1=682994&r2=682995&view=diff
==============================================================================
--- geronimo/sandbox/djencks/jetty7/pom.xml (original)
+++ geronimo/sandbox/djencks/jetty7/pom.xml Tue Aug 5 15:24:44 2008
@@ -67,7 +67,6 @@
<modules>
<module>geronimo-jetty7</module>
-<!--
<module>geronimo-jetty7-builder</module>
<module>jetty7</module>
<module>jetty7-deployer</module>
@@ -75,7 +74,6 @@
<module>geronimo-jetty7-clustering-wadi</module>
<module>jetty7-clustering-builder-wadi</module>
<module>jetty7-clustering-wadi</module>
--->
</modules>
</project>