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 2009/06/30 10:51:32 UTC
svn commit: r789622 [1/2] - in /geronimo/server/trunk/plugins/jetty7:
geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/deployment/
geronimo-jetty7-clustering-builder-wadi/src/main/java/org/apache/geronimo/jetty7/cluster/wadi/builder/
ge...
Author: djencks
Date: Tue Jun 30 08:51:31 2009
New Revision: 789622
URL: http://svn.apache.org/viewvc?rev=789622&view=rev
Log:
GERONIMO-4645 reimplement ejb web service security. Also GERONIMO-4689 clean up code by renaming and moving classes.
Added:
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/DefaultServletHolderWrapper.java (contents, props changed)
- copied, changed from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyDefaultServletHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/FilterHolderWrapper.java (contents, props changed)
- copied, changed from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyFilterHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/GeronimoServletHolder.java (contents, props changed)
- copied, changed from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/InternalJettyServletHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JspServletHolderWrapper.java (contents, props changed)
- copied, changed from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyJspServletHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/POJOWebServiceHolderWrapper.java (contents, props changed)
- copied, changed from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyPOJOWebServiceHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/ServletHolderWrapper.java (contents, props changed)
- copied, changed from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyServletHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/WebAppContextWrapper.java (contents, props changed)
- copied, changed from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyWebAppContext.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBServletHandler.java (with props)
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceContext.java (contents, props changed)
- copied, changed from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyEJBWebServiceContext.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceSecurityHandler.java (with props)
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/GeronimoWebAppContext.java (contents, props changed)
- copied, changed from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/TwistyWebAppContext.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/InjectionServletHandler.java
- copied, changed from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/InjectionServletHandler.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/JaccSecurityHandler.java (contents, props changed)
- copied, changed from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/JettySecurityHandler.java
Removed:
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/InjectionServletHandler.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/InternalJettyServletHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyDefaultServletHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyEJBWebServiceContext.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyFilterHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyJspServletHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyPOJOWebServiceHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyServletHolder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyWebAppContext.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/JettySecurityHandler.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/TwistyWebAppContext.java
Modified:
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7-clustering-builder-wadi/src/main/java/org/apache/geronimo/jetty7/cluster/wadi/builder/WADIJettyClusteringBuilder.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/pom.xml
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyContainerImpl.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyFilterMapping.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/AuthConfigProviderHandlerFactory.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/JettySecurityHandlerFactory.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/security/SecurityHandlerFactory.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/test/java/org/apache/geronimo/jetty7/AbstractWebModuleTest.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/test/java/org/apache/geronimo/jetty7/ApplicationTest.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/test/java/org/apache/geronimo/jetty7/GBeanInfoTest.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/test/java/org/apache/geronimo/jetty7/SecurityTest.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/test/java/org/apache/geronimo/jetty7/StatTest.java
geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/test/java/org/apache/geronimo/jetty7/security/ServerAuthenticationGBean.java
geronimo/server/trunk/plugins/jetty7/jetty7-deployer/src/main/plan/plan.xml
Modified: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilder.java?rev=789622&r1=789621&r2=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilder.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7-builder/src/main/java/org/apache/geronimo/jetty7/deployment/JettyModuleBuilder.java Tue Jun 30 08:51:31 2009
@@ -78,12 +78,12 @@
import org.apache.geronimo.j2ee.deployment.annotation.AnnotatedWebApp;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.jetty7.Host;
-import org.apache.geronimo.jetty7.JettyDefaultServletHolder;
-import org.apache.geronimo.jetty7.JettyFilterHolder;
+import org.apache.geronimo.jetty7.DefaultServletHolderWrapper;
+import org.apache.geronimo.jetty7.FilterHolderWrapper;
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.JspServletHolderWrapper;
+import org.apache.geronimo.jetty7.ServletHolderWrapper;
+import org.apache.geronimo.jetty7.WebAppContextWrapper;
import org.apache.geronimo.jetty7.security.AuthConfigProviderHandlerFactory;
import org.apache.geronimo.jetty7.security.BuiltInAuthMethod;
import org.apache.geronimo.jetty7.security.JettySecurityHandlerFactory;
@@ -169,7 +169,7 @@
private final Environment defaultEnvironment;
private final AbstractNameQuery jettyContainerObjectName;
- private final JettyJspServletHolder jspServlet;
+ private final JspServletHolderWrapper jspServlet;
private final Collection defaultServlets;
private final Collection defaultFilters;
private final Collection defaultFilterMappings;
@@ -188,7 +188,7 @@
Integer defaultSessionTimeoutSeconds,
List<String> defaultWelcomeFiles,
AbstractNameQuery jettyContainerName,
- JettyJspServletHolder jspServlet,
+ JspServletHolderWrapper jspServlet,
Collection defaultServlets,
Collection defaultFilters,
Collection defaultFilterMappings,
@@ -393,7 +393,7 @@
WebAppType webApp = (WebAppType) webModule.getSpecDD();
JettyWebAppType jettyWebApp = (JettyWebAppType) webModule.getVendorDD();
- GBeanData webModuleData = new GBeanData(moduleName, JettyWebAppContext.class);
+ GBeanData webModuleData = new GBeanData(moduleName, WebAppContextWrapper.class);
configureBasicWebModuleAttributes(webApp, jettyWebApp, moduleContext, earContext, webModule, webModuleData);
@@ -440,7 +440,7 @@
// configure listeners.
configureListeners(webApp, webModuleData);
- webModuleData.setAttribute(JettyWebAppContext.GBEAN_ATTR_SESSION_TIMEOUT,
+ webModuleData.setAttribute(WebAppContextWrapper.GBEAN_ATTR_SESSION_TIMEOUT,
(webApp.getSessionConfigArray().length == 1 && webApp.getSessionConfigArray(0).getSessionTimeout() != null) ?
webApp.getSessionConfigArray(0).getSessionTimeout().getBigIntegerValue().intValue() * 60 :
defaultSessionTimeoutSeconds);
@@ -449,7 +449,7 @@
webModuleData.setAttribute("distributable", distributable);
if (TRUE == distributable) {
clusteringBuilders.build(jettyWebApp, earContext, moduleContext);
- if (webModuleData.getReferencePatterns(JettyWebAppContext.GBEAN_REF_SESSION_HANDLER_FACTORY) == null) {
+ if (webModuleData.getReferencePatterns(WebAppContextWrapper.GBEAN_REF_SESSION_HANDLER_FACTORY) == null) {
log.warn("No clustering builders configured: app will not be clustered");
configureNoClustering(moduleContext, webModuleData);
}
@@ -573,7 +573,7 @@
// "DefaultWebApplicationHandlerFactory",
// NameFactory.GERONIMO_SERVICE);
// GBeanData beanData = new GBeanData(name, DefaultWebApplicationHandlerFactory.GBEAN_INFO);
-// webModuleData.setReferencePattern(JettyWebAppContext.GBEAN_REF_WEB_APPLICATION_HANDLER_FACTORY, name);
+// webModuleData.setReferencePattern(WebAppContextWrapper.GBEAN_REF_WEB_APPLICATION_HANDLER_FACTORY, name);
// moduleContext.addGBean(beanData);
}
@@ -622,7 +622,7 @@
for (FilterType filterType : filterArray) {
String filterName = filterType.getFilterName().getStringValue().trim();
AbstractName filterAbstractName = earContext.getNaming().createChildName(moduleName, filterName, NameFactory.WEB_FILTER);
- GBeanData filterData = new GBeanData(filterAbstractName, JettyFilterHolder.GBEAN_INFO);
+ GBeanData filterData = new GBeanData(filterAbstractName, FilterHolderWrapper.GBEAN_INFO);
filterData.setAttribute("filterName", filterName);
filterData.setAttribute("filterClass", filterType.getFilterClass().getStringValue().trim());
Map<String, String> initParams = new HashMap<String, String>();
@@ -1101,7 +1101,7 @@
throw new DeploymentException("Could not load javax.servlet.Servlet in web classloader", e); // TODO identify web app in message
}
if (baseServletClass.isAssignableFrom(servletClass)) {
- servletData = new GBeanData(servletAbstractName, JettyServletHolder.class);
+ servletData = new GBeanData(servletAbstractName, ServletHolderWrapper.class);
servletData.setAttribute("servletClass", servletClassName);
} else {
servletData = new GBeanData(pojoWebServiceTemplate);
@@ -1124,7 +1124,7 @@
}
}
} else if (servletType.isSetJspFile()) {
- servletData = new GBeanData(servletAbstractName, JettyServletHolder.class);
+ servletData = new GBeanData(servletAbstractName, ServletHolderWrapper.class);
servletData.setAttribute("jspFile", servletType.getJspFile().getStringValue().trim());
servletData.setAttribute("servletClass", jspServlet.getServletClassName());
initParams.put("development", "false");
@@ -1179,8 +1179,8 @@
infoBuilder.addAttribute("defaultLocaleEncodingMappings", Map.class, true, true);
infoBuilder.addAttribute("defaultMimeTypeMappings", Map.class, true, true);
infoBuilder.addAttribute("jettyContainerObjectName", AbstractNameQuery.class, true, true);
- infoBuilder.addReference("JspServlet", JettyJspServletHolder.class, NameFactory.SERVLET_TEMPLATE);
- infoBuilder.addReference("DefaultServlets", JettyDefaultServletHolder.class, NameFactory.SERVLET_TEMPLATE);
+ infoBuilder.addReference("JspServlet", JspServletHolderWrapper.class, NameFactory.SERVLET_TEMPLATE);
+ infoBuilder.addReference("DefaultServlets", DefaultServletHolderWrapper.class, NameFactory.SERVLET_TEMPLATE);
infoBuilder.addReference("DefaultFilters", Object.class);
infoBuilder.addReference("DefaultFilterMappings", Object.class);
infoBuilder.addReference("PojoWebServiceTemplate", Object.class, NameFactory.SERVLET_WEB_SERVICE_TEMPLATE);
Modified: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7-clustering-builder-wadi/src/main/java/org/apache/geronimo/jetty7/cluster/wadi/builder/WADIJettyClusteringBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7-clustering-builder-wadi/src/main/java/org/apache/geronimo/jetty7/cluster/wadi/builder/WADIJettyClusteringBuilder.java?rev=789622&r1=789621&r2=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7-clustering-builder-wadi/src/main/java/org/apache/geronimo/jetty7/cluster/wadi/builder/WADIJettyClusteringBuilder.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7-clustering-builder-wadi/src/main/java/org/apache/geronimo/jetty7/cluster/wadi/builder/WADIJettyClusteringBuilder.java Tue Jun 30 08:51:31 2009
@@ -37,7 +37,7 @@
import org.apache.geronimo.gbean.annotation.GBean;
import org.apache.geronimo.gbean.annotation.ParamAttribute;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
-import org.apache.geronimo.jetty7.JettyWebAppContext;
+import org.apache.geronimo.jetty7.WebAppContextWrapper;
import org.apache.geronimo.jetty7.cluster.ClusteredSessionHandlerFactory;
import org.apache.geronimo.jetty7.cluster.wadi.WADIClusteredPreHandlerFactory;
import org.apache.geronimo.kernel.GBeanAlreadyExistsException;
@@ -121,7 +121,7 @@
protected GBeanData extractWebModule(DeploymentContext moduleContext) throws DeploymentException {
Configuration configuration = moduleContext.getConfiguration();
- AbstractNameQuery webModuleQuery = new AbstractNameQuery(configuration.getId(), Collections.EMPTY_MAP, Collections.singleton(JettyWebAppContext.class.getName()));
+ AbstractNameQuery webModuleQuery = new AbstractNameQuery(configuration.getId(), Collections.EMPTY_MAP, Collections.singleton(WebAppContextWrapper.class.getName()));
try {
return configuration.findGBeanData(webModuleQuery);
} catch (GBeanNotFoundException e) {
@@ -194,7 +194,7 @@
}
protected Integer getSessionTimeout(GBeanData webModuleData) throws AssertionError {
- Integer sessionTimeout = (Integer) webModuleData.getAttribute(JettyWebAppContext.GBEAN_ATTR_SESSION_TIMEOUT);
+ Integer sessionTimeout = (Integer) webModuleData.getAttribute(WebAppContextWrapper.GBEAN_ATTR_SESSION_TIMEOUT);
if (null == sessionTimeout) {
throw new AssertionError();
}
@@ -257,7 +257,7 @@
GBeanData beanData = new GBeanData(name, WADIClusteredPreHandlerFactory.class);
beanData.setReferencePattern(WADIClusteredPreHandlerFactory.GBEAN_REF_WADI_SESSION_MANAGER, sessionManagerName);
- webModuleData.setReferencePattern(JettyWebAppContext.GBEAN_REF_PRE_HANDLER_FACTORY, name);
+ webModuleData.setReferencePattern(WebAppContextWrapper.GBEAN_REF_PRE_HANDLER_FACTORY, name);
moduleContext.addGBean(beanData);
@@ -272,7 +272,7 @@
GBeanData beanData = new GBeanData(name, ClusteredSessionHandlerFactory.class);
beanData.setReferencePattern(ClusteredSessionHandlerFactory.GBEAN_REF_SESSION_MANAGER, sessionManagerName);
- webModuleData.setReferencePattern(JettyWebAppContext.GBEAN_REF_SESSION_HANDLER_FACTORY, name);
+ webModuleData.setReferencePattern(WebAppContextWrapper.GBEAN_REF_SESSION_HANDLER_FACTORY, name);
moduleContext.addGBean(beanData);
Modified: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/pom.xml?rev=789622&r1=789621&r2=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/pom.xml (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/pom.xml Tue Jun 30 08:51:31 2009
@@ -33,18 +33,13 @@
<name>Geronimo Plugins, Jetty :: Core</name>
<dependencies>
- <!--<dependency>-->
- <!--<groupId>org.apache.geronimo.specs</groupId>-->
- <!--<artifactId>geronimo-servlet_3.0_spec</artifactId>-->
- <!--<version>1.0-EA-SNAPSHOT</version>-->
- <!--</dependency>-->
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_2.5_spec</artifactId>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-ejb_3.0_spec</artifactId>
+ <artifactId>geronimo-jacc_1.1_spec</artifactId>
</dependency>
<dependency>
@@ -66,12 +61,6 @@
<artifactId>jee-specs</artifactId>
<version>${version}</version>
<type>car</type>
- <exclusions>
- <exclusion>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-servlet_2.5_spec</artifactId>
- </exclusion>
- </exclusions>
<scope>provided</scope>
</dependency>
@@ -80,27 +69,9 @@
<artifactId>webservices-common</artifactId>
<type>car</type>
<version>${version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-servlet_2.5_spec</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <!-- xbean-reflect, g-management come via g-j2ee from this -->
- <!--<dependency>-->
- <!--<groupId>org.apache.geronimo.modules</groupId>-->
- <!--<artifactId>geronimo-webservices</artifactId>-->
- <!--<version>${version}</version>-->
- <!--<scope>provided</scope>-->
- <!--</dependency>-->
-
- <!--<dependency>-->
- <!--<groupId>org.eclipse.jetty</groupId>-->
- <!--<artifactId>jetty-server</artifactId>-->
- <!--</dependency>-->
-
+ </dependency>
+
+
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-ajp</artifactId>
@@ -111,37 +82,18 @@
<artifactId>jetty-jaspi</artifactId>
</dependency>
- <!--<dependency>-->
- <!--<groupId>org.eclipse.jetty</groupId>-->
- <!--<artifactId>jetty-util</artifactId>-->
- <!--</dependency>-->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
</dependency>
- <!--<dependency>-->
- <!--<groupId>org.eclipse.jetty</groupId>-->
- <!--<artifactId>jetty-security</artifactId>-->
- <!--</dependency>-->
- <!--<dependency>-->
- <!--<groupId>org.eclipse.jetty</groupId>-->
- <!--<artifactId>jetty-servlet</artifactId>-->
- <!--</dependency>-->
- <!--<dependency>-->
- <!--<groupId>org.eclipse.jetty</groupId>-->
- <!--<artifactId>jetty-plus</artifactId>-->
- <!--</dependency>-->
-
- <!--<dependency>-->
- <!--<groupId>xerces</groupId>-->
- <!--<artifactId>xercesImpl</artifactId>-->
- <!--<scope>test</scope>-->
- <!--</dependency>-->
- <!--<dependency>-->
- <!--<groupId>org.slf4j</groupId>-->
- <!--<artifactId>jcl104-over-slf4j</artifactId>-->
- <!--<scope>test</scope>-->
- <!--</dependency>-->
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ </dependency>
</dependencies>
<build>
Copied: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/DefaultServletHolderWrapper.java (from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyDefaultServletHolder.java)
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/DefaultServletHolderWrapper.java?p2=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/DefaultServletHolderWrapper.java&p1=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyDefaultServletHolder.java&r1=788556&r2=789622&rev=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyDefaultServletHolder.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/DefaultServletHolderWrapper.java Tue Jun 30 08:51:31 2009
@@ -31,12 +31,12 @@
* @version $Rev$ $Date$
*/
@GBean(j2eeType = NameFactory.SERVLET_TEMPLATE)
-public class JettyDefaultServletHolder extends JettyServletHolder {
+public class DefaultServletHolderWrapper extends ServletHolderWrapper {
- public JettyDefaultServletHolder() {
+ public DefaultServletHolderWrapper() {
}
- public JettyDefaultServletHolder(@ParamSpecial(type = SpecialAttributeType.objectName) String objectName,
+ public DefaultServletHolderWrapper(@ParamSpecial(type = SpecialAttributeType.objectName) String objectName,
@ParamAttribute(name = "servletName") String servletName,
@ParamAttribute(name = "servletClass") String servletClassName,
@ParamAttribute(name = "jspFile") String jspFile,
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/DefaultServletHolderWrapper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/DefaultServletHolderWrapper.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/DefaultServletHolderWrapper.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/FilterHolderWrapper.java (from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyFilterHolder.java)
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/FilterHolderWrapper.java?p2=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/FilterHolderWrapper.java&p1=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyFilterHolder.java&r1=788556&r2=789622&rev=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyFilterHolder.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/FilterHolderWrapper.java Tue Jun 30 08:51:31 2009
@@ -34,11 +34,11 @@
* @version $Rev$ $Date$
*/
@GBean(j2eeType = NameFactory.WEB_FILTER)
-public class JettyFilterHolder implements GBeanLifecycle {
+public class FilterHolderWrapper implements GBeanLifecycle {
private final FilterHolder filterHolder;
- public JettyFilterHolder(@ParamAttribute(name = "filterName") String filterName,
+ public FilterHolderWrapper(@ParamAttribute(name = "filterName") String filterName,
@ParamAttribute(name = "filterClass") String filterClass,
@ParamAttribute(name = "initParams") Map initParams,
@ParamReference(name = "JettyServletRegistration", namingType = NameFactory.WEB_MODULE) JettyServletRegistration jettyServletRegistration) throws Exception {
@@ -135,7 +135,7 @@
public static final GBeanInfo GBEAN_INFO;
static {
- GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(JettyFilterHolder.class, NameFactory.WEB_FILTER);
+ GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(FilterHolderWrapper.class, NameFactory.WEB_FILTER);
infoBuilder.addAttribute("filterName", String.class, true);
infoBuilder.addAttribute("filterClass", String.class, true);
infoBuilder.addAttribute("initParams", Map.class, true);
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/FilterHolderWrapper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/FilterHolderWrapper.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/FilterHolderWrapper.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/GeronimoServletHolder.java (from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/InternalJettyServletHolder.java)
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/GeronimoServletHolder.java?p2=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/GeronimoServletHolder.java&p1=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/InternalJettyServletHolder.java&r1=788556&r2=789622&rev=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/InternalJettyServletHolder.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/GeronimoServletHolder.java Tue Jun 30 08:51:31 2009
@@ -36,13 +36,13 @@
/**
* @version $Rev$ $Date$
*/
-public class InternalJettyServletHolder extends ServletHolder {
+public class GeronimoServletHolder extends ServletHolder {
private final IntegrationContext integrationContext;
private final Subject runAsSubject;
private final JettyServletRegistration servletRegistration;
- public InternalJettyServletHolder(IntegrationContext integrationContext, Subject runAsSubject, JettyServletRegistration servletRegistration) {
+ public GeronimoServletHolder(IntegrationContext integrationContext, Subject runAsSubject, JettyServletRegistration servletRegistration) {
this.integrationContext = integrationContext;
this.runAsSubject = runAsSubject;
this.servletRegistration = servletRegistration;
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/GeronimoServletHolder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/GeronimoServletHolder.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/GeronimoServletHolder.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyContainerImpl.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyContainerImpl.java?rev=789622&r1=789621&r2=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyContainerImpl.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyContainerImpl.java Tue Jun 30 08:51:31 2009
@@ -20,8 +20,10 @@
import java.io.File;
import java.util.HashMap;
import java.util.Map;
+import java.security.Permission;
import javax.management.j2ee.statistics.Stats;
+import javax.security.jacc.WebUserDataPermission;
import org.apache.geronimo.gbean.GBeanLifecycle;
import org.apache.geronimo.gbean.annotation.GBean;
@@ -37,6 +39,10 @@
import org.apache.geronimo.system.serverinfo.ServerInfo;
import org.apache.geronimo.webservices.SoapHandler;
import org.apache.geronimo.webservices.WebServiceContainer;
+import org.apache.geronimo.jetty7.handler.EJBServletHandler;
+import org.apache.geronimo.jetty7.handler.EJBWebServiceContext;
+import org.apache.geronimo.jetty7.security.JettySecurityHandlerFactory;
+import org.apache.geronimo.jetty7.security.BuiltInAuthMethod;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.RequestLog;
@@ -46,6 +52,8 @@
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.server.handler.RequestLogHandler;
import org.eclipse.jetty.server.handler.StatisticsHandler;
+import org.eclipse.jetty.servlet.ServletHandler;
+import org.eclipse.jetty.security.SecurityHandler;
/**
* @version $Rev$ $Date$
@@ -58,7 +66,7 @@
private static final String DEFAULT_JETTY_HOME = "var/jetty";
private final Server server;
- private final Map webServices = new HashMap();
+ private final Map<String, EJBWebServiceContext> webServices = new HashMap<String, EJBWebServiceContext>();
private final String objectName;
private final WebManager manager;
private final String jettyHome;
@@ -67,9 +75,7 @@
private JettyWebContainerStatsImpl stats;
// list of handlers
private StatisticsHandler statsHandler = new StatisticsHandler();
- private HandlerCollection handlerCollection = new HandlerCollection();
private ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection();
- private DefaultHandler defaultHandler = new DefaultHandler();
private RequestLogHandler requestLogHandler = new RequestLogHandler();
// private boolean statsHandlerInPlace = false;
private boolean statsOn = false;
@@ -95,7 +101,9 @@
//handled by a Handler in the ContextHandlerCollection.
//The third element is the RequestLogHandler, which requires
//a RequestLog impl to be set.
+ DefaultHandler defaultHandler = new DefaultHandler();
Handler[] handlers = {contextHandlerCollection, defaultHandler, requestLogHandler, statsHandler};
+ HandlerCollection handlerCollection = new HandlerCollection();
handlerCollection.setHandlers(handlers);
server.setHandler(handlerCollection);
@@ -211,11 +219,23 @@
contextHandlerCollection.removeHandler(context);
}
- ///TODO figure out strings1 param
- public void addWebService(String contextPath, String[] virtualHosts, WebServiceContainer webServiceContainer, ConfigurationFactory configurationFactory, String realmName, String transportGuarantee, String authMethod, String[] strings1, ClassLoader classLoader) throws Exception {
-// InternalJAASJettyRealm internalJAASJettyRealm = securityRealmName == null ? null : addRealm(securityRealmName);
-// JettyEJBWebServiceContext webServiceContext = new JettyEJBWebServiceContext(contextPath, webServiceContainer, internalJAASJettyRealm, realmName, transportGuarantee, authMethod, classLoader);
- JettyEJBWebServiceContext webServiceContext = new JettyEJBWebServiceContext(contextPath, webServiceContainer, realmName, transportGuarantee, authMethod, classLoader);
+ public void addWebService(String contextPath,
+ String[] virtualHosts,
+ WebServiceContainer webServiceContainer,
+ ConfigurationFactory configurationFactory,
+ String realmName,
+ String transportGuarantee,
+ String authMethod,
+ String[] protectedMethods, //allowed methods?
+ ClassLoader classLoader) throws Exception {
+ SecurityHandler securityHandler = null;
+ if (realmName != null) {
+ JettySecurityHandlerFactory factory = new JettySecurityHandlerFactory(BuiltInAuthMethod.valueOf(authMethod), null, null, realmName, configurationFactory);
+ Permission permission = new WebUserDataPermission("/*", protectedMethods, ":" + transportGuarantee);
+ securityHandler = factory.buildEJBSecurityHandler(permission);
+ }
+ ServletHandler servletHandler = new EJBServletHandler(webServiceContainer);
+ EJBWebServiceContext webServiceContext = new EJBWebServiceContext(contextPath, securityHandler, servletHandler, classLoader);
webServiceContext.setVirtualHosts(virtualHosts);
addContext(webServiceContext);
webServiceContext.start();
@@ -223,7 +243,7 @@
}
public void removeWebService(String contextPath) {
- JettyEJBWebServiceContext webServiceContext = (JettyEJBWebServiceContext) webServices.remove(contextPath);
+ EJBWebServiceContext webServiceContext = webServices.remove(contextPath);
try {
removeContext(webServiceContext);
} catch (Exception e) {
Modified: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyFilterMapping.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyFilterMapping.java?rev=789622&r1=789621&r2=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyFilterMapping.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyFilterMapping.java Tue Jun 30 08:51:31 2009
@@ -21,8 +21,6 @@
import org.eclipse.jetty.server.DispatcherType;
-import org.apache.geronimo.gbean.GBeanInfo;
-import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.gbean.ReferenceCollection;
import org.apache.geronimo.gbean.ReferenceCollectionEvent;
import org.apache.geronimo.gbean.ReferenceCollectionListener;
@@ -44,7 +42,7 @@
private final boolean forwardDispatch;
private final boolean includeDispatch;
private final boolean errorDispatch;
- private final JettyFilterHolder jettyFilterHolder;
+ private final FilterHolderWrapper jettyFilterHolder;
private final Collection<ServletNameSource> jettyServletHolders;
private final JettyFilterMapping previous;
private final JettyServletRegistration jettyServletRegistration;
@@ -54,7 +52,7 @@
@ParamAttribute(name = "forwardDispatch")boolean forwardDispatch,
@ParamAttribute(name = "includeDispatch")boolean includeDispatch,
@ParamAttribute(name = "errorDispatch")boolean errorDispatch,
- @ParamReference(name="Filter", namingType = NameFactory.WEB_FILTER)JettyFilterHolder jettyFilterHolder,
+ @ParamReference(name="Filter", namingType = NameFactory.WEB_FILTER) FilterHolderWrapper jettyFilterHolder,
@ParamReference(name="Servlets", namingType = NameFactory.SERVLET)Collection<ServletNameSource> jettyServletHolders,
@ParamReference(name="Previous", namingType = NameFactory.URL_WEB_FILTER_MAPPING)JettyFilterMapping previous,
@ParamReference(name="JettyServletRegistration", namingType = NameFactory.WEB_MODULE)JettyServletRegistration jettyServletRegistration) {
@@ -149,7 +147,7 @@
return errorDispatch;
}
- public JettyFilterHolder getFilter() {
+ public FilterHolderWrapper getFilter() {
return jettyFilterHolder;
}
Copied: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JspServletHolderWrapper.java (from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyJspServletHolder.java)
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JspServletHolderWrapper.java?p2=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JspServletHolderWrapper.java&p1=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyJspServletHolder.java&r1=788556&r2=789622&rev=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyJspServletHolder.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JspServletHolderWrapper.java Tue Jun 30 08:51:31 2009
@@ -34,12 +34,12 @@
* @version $Rev$ $Date$
*/
@GBean(j2eeType = NameFactory.SERVLET_TEMPLATE)
-public class JettyJspServletHolder extends JettyServletHolder {
+public class JspServletHolderWrapper extends ServletHolderWrapper {
- public JettyJspServletHolder() {
+ public JspServletHolderWrapper() {
}
- public JettyJspServletHolder(@ParamSpecial(type = SpecialAttributeType.objectName) String objectName,
+ public JspServletHolderWrapper(@ParamSpecial(type = SpecialAttributeType.objectName) String objectName,
@ParamAttribute(name = "servletName") String servletName,
@ParamAttribute(name = "servletClass") String servletClassName,
@ParamAttribute(name = "jspFile") String jspFile,
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JspServletHolderWrapper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JspServletHolderWrapper.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JspServletHolderWrapper.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/POJOWebServiceHolderWrapper.java (from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyPOJOWebServiceHolder.java)
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/POJOWebServiceHolderWrapper.java?p2=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/POJOWebServiceHolderWrapper.java&p1=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyPOJOWebServiceHolder.java&r1=788556&r2=789622&rev=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyPOJOWebServiceHolder.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/POJOWebServiceHolderWrapper.java Tue Jun 30 08:51:31 2009
@@ -50,14 +50,14 @@
*/
@GBean(j2eeType = NameFactory.SERVLET_WEB_SERVICE_TEMPLATE)
-public class JettyPOJOWebServiceHolder implements ServletNameSource, GBeanLifecycle {
+public class POJOWebServiceHolderWrapper implements ServletNameSource, GBeanLifecycle {
private final ServletHolder servletHolder;
private final WebServiceContainer webServiceContainer;
private final Set<String> servletMappings;
private final JettyServletRegistration context;
private final String pojoClassName;
- public JettyPOJOWebServiceHolder(@ParamAttribute(name = "pojoClassName") String pojoClassName,
+ public POJOWebServiceHolderWrapper(@ParamAttribute(name = "pojoClassName") String pojoClassName,
@ParamAttribute(name = "servletName") String servletName,
@ParamAttribute(name = "initParams") Map<String, String> initParams,
@ParamAttribute(name = "loadOnStartup") Integer loadOnStartup,
@@ -66,7 +66,7 @@
@ParamReference(name = "WebServiceContainerFactory") WebServiceContainerFactory webServiceContainerFactory,
@ParamReference(name = "JettyServletRegistration", namingType = NameFactory.WEB_MODULE) JettyServletRegistration context) throws Exception {
Subject runAsSubject = context == null ? null : context.getSubjectForRole(runAsRole);
- servletHolder = new InternalJettyServletHolder(context == null ? null : context.getIntegrationContext(), runAsSubject, context);
+ servletHolder = new GeronimoServletHolder(context == null ? null : context.getIntegrationContext(), runAsSubject, context);
//context will be null only for use as "default servlet info holder" in deployer.
this.pojoClassName = pojoClassName;
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/POJOWebServiceHolderWrapper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/POJOWebServiceHolderWrapper.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/POJOWebServiceHolderWrapper.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/ServletHolderWrapper.java (from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyServletHolder.java)
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/ServletHolderWrapper.java?p2=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/ServletHolderWrapper.java&p1=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyServletHolder.java&r1=788556&r2=789622&rev=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyServletHolder.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/ServletHolderWrapper.java Tue Jun 30 08:51:31 2009
@@ -43,7 +43,7 @@
*/
@GBean(j2eeType = NameFactory.SERVLET)
-public class JettyServletHolder implements ServletNameSource, Servlet, GBeanLifecycle {
+public class ServletHolderWrapper implements ServletNameSource, Servlet, GBeanLifecycle {
private final JettyServletRegistration servletRegistration;
@@ -51,13 +51,13 @@
private final String objectName;
//todo consider interface instead of this constructor for endpoint use.
- public JettyServletHolder() {
+ public ServletHolderWrapper() {
servletRegistration = null;
servletHolder = null;
objectName = null;
}
- public JettyServletHolder(@ParamSpecial(type = SpecialAttributeType.objectName) String objectName,
+ public ServletHolderWrapper(@ParamSpecial(type = SpecialAttributeType.objectName) String objectName,
@ParamAttribute(name = "servletName") String servletName,
@ParamAttribute(name = "servletClass") String servletClassName,
@ParamAttribute(name = "jspFile") String jspFile,
@@ -68,7 +68,7 @@
@ParamReference(name = "JettyServletRegistration", namingType = NameFactory.WEB_MODULE) JettyServletRegistration context) throws Exception {
servletRegistration = context;
Subject runAsSubject = context == null ? null : context.getSubjectForRole(runAsRole);
- servletHolder = new InternalJettyServletHolder(context == null ? null : context.getIntegrationContext(), runAsSubject, servletRegistration);
+ servletHolder = new GeronimoServletHolder(context == null ? null : context.getIntegrationContext(), runAsSubject, servletRegistration);
servletHolder.setName(servletName);
servletHolder.setClassName(servletClassName);
//context will be null only for use as "default servlet info holder" in deployer.
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/ServletHolderWrapper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/ServletHolderWrapper.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/ServletHolderWrapper.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/WebAppContextWrapper.java (from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyWebAppContext.java)
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/WebAppContextWrapper.java?p2=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/WebAppContextWrapper.java&p1=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyWebAppContext.java&r1=788556&r2=789622&rev=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyWebAppContext.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/WebAppContextWrapper.java Tue Jun 30 08:51:31 2009
@@ -17,7 +17,6 @@
package org.apache.geronimo.jetty7;
-import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
@@ -48,7 +47,7 @@
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.j2ee.management.impl.InvalidObjectNameException;
import org.apache.geronimo.jetty7.handler.IntegrationContext;
-import org.apache.geronimo.jetty7.handler.TwistyWebAppContext;
+import org.apache.geronimo.jetty7.handler.GeronimoWebAppContext;
import org.apache.geronimo.jetty7.security.SecurityHandlerFactory;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.ObjectNameUtil;
@@ -77,8 +76,8 @@
@GBean(name="Jetty WebApplication Context",
j2eeType=NameFactory.WEB_MODULE)
-public class JettyWebAppContext implements GBeanLifecycle, JettyServletRegistration, WebModule {
- private static final Logger log = LoggerFactory.getLogger(JettyWebAppContext.class);
+public class WebAppContextWrapper implements GBeanLifecycle, JettyServletRegistration, WebModule {
+ private static final Logger log = LoggerFactory.getLogger(WebAppContextWrapper.class);
private final String originalSpecDD;
private final J2EEServer server;
@@ -91,7 +90,7 @@
private String displayName;
private final String objectName;
- private final TwistyWebAppContext webAppContext;
+ private final GeronimoWebAppContext webAppContext;
private final Context componentContext;
private final Holder holder;
private final RunAsSource runAsSource;
@@ -105,7 +104,7 @@
private IntegrationContext integrationContext;
- public JettyWebAppContext(@ParamSpecial(type = SpecialAttributeType.objectName) String objectName,
+ public WebAppContextWrapper(@ParamSpecial(type = SpecialAttributeType.objectName) String objectName,
@ParamAttribute(name = "contextPath") String contextPath,
@ParamAttribute(name = "deploymentDescriptor") String originalSpecDD,
@ParamAttribute(name = "componentContext") Map<String, Object> componentContext,
@@ -188,7 +187,7 @@
GeronimoUserTransaction userTransaction = new GeronimoUserTransaction(transactionManager);
this.componentContext = EnterpriseNamingContext.createEnterpriseNamingContext(componentContext, userTransaction, kernel, classLoader);
integrationContext = new IntegrationContext(this.componentContext, unshareableResources, applicationManagedSecurityResources, trackedConnectionAssociator, userTransaction);
- webAppContext = new TwistyWebAppContext(securityHandler, sessionHandler, servletHandler, null, integrationContext, classLoader);
+ webAppContext = new GeronimoWebAppContext(securityHandler, sessionHandler, servletHandler, null, integrationContext, classLoader);
webAppContext.setContextPath(contextPath);
//See Jetty-386. Setting this to true can expose secured content.
webAppContext.setCompactPath(compactPath);
@@ -204,7 +203,7 @@
Map<String, Object> servletContext = new HashMap<String, Object>();
Map<Class, Object> customizerContext = new HashMap<Class, Object>();
customizerContext.put(Map.class, servletContext);
- customizerContext.put(Context.class, JettyWebAppContext.this.componentContext);
+ customizerContext.put(Context.class, WebAppContextWrapper.this.componentContext);
contextCustomizer.customize(customizerContext);
for (Map.Entry<String, Object> entry: servletContext.entrySet()) {
webAppContext.setAttribute(entry.getKey(), entry.getValue());
@@ -333,7 +332,7 @@
public void doStop() throws Exception {
webAppContext.stop();
jettyContainer.removeContext(webAppContext);
- log.debug("JettyWebAppContext stopped");
+ log.debug("WebAppContextWrapper stopped");
}
public void doFail() {
@@ -343,7 +342,7 @@
//ignore
}
- log.warn("JettyWebAppContext failed");
+ log.warn("WebAppContextWrapper failed");
}
//pass through attributes. They should be constructor params
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/WebAppContextWrapper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/WebAppContextWrapper.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/WebAppContextWrapper.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBServletHandler.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBServletHandler.java?rev=789622&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBServletHandler.java (added)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBServletHandler.java Tue Jun 30 08:51:31 2009
@@ -0,0 +1,232 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.geronimo.jetty7.handler;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Map;
+import java.util.HashMap;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletException;
+
+import org.eclipse.jetty.servlet.ServletHandler;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Response;
+import org.eclipse.jetty.http.HttpException;
+import org.apache.geronimo.webservices.WebServiceContainer;
+
+/**
+ * ServletHandler that always delegates to a WebServiceContainer, presumably an EJB web service.
+ *
+ * @version $Rev$ $Date$
+ */
+public class EJBServletHandler extends ServletHandler {
+
+ private final WebServiceContainer webServiceContainer;
+
+ public EJBServletHandler(WebServiceContainer webServiceContainer) {
+ this.webServiceContainer = webServiceContainer;
+ }
+
+ @Override
+ public void doScope(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+ if (false)
+ nextScope(target,baseRequest,request,response);
+ else if (_nextScope!=null)
+ _nextScope.doScope(target,baseRequest,request, response);
+ else if (_outerScope!=null)
+ _outerScope.doHandle(target,baseRequest,request, response);
+ else
+ doHandle(target,baseRequest,request, response);
+ // end manual inline (pathentic attempt to reduce stack depth)
+ }
+
+ @Override
+ public void doHandle(String target, Request baseRequest, HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
+ Response jettyResponse = (Response) res;
+ res.setContentType("text/xml");
+ RequestAdapter request = new RequestAdapter(baseRequest);
+ ResponseAdapter response = new ResponseAdapter(jettyResponse);
+
+ request.setAttribute(WebServiceContainer.SERVLET_REQUEST, req);
+ request.setAttribute(WebServiceContainer.SERVLET_RESPONSE, res);
+ // TODO: add support for context
+ request.setAttribute(WebServiceContainer.SERVLET_CONTEXT, null);
+
+ if (req.getParameter("wsdl") != null) {
+ try {
+ webServiceContainer.getWsdl(request, response);
+ baseRequest.setHandled(true);
+ } catch (IOException e) {
+ throw e;
+ } catch (Exception e) {
+ throw (HttpException) new HttpException(500, "Could not fetch wsdl!").initCause(e);
+ }
+ } else {
+ try {
+ webServiceContainer.invoke(request, response);
+ baseRequest.setHandled(true);
+ } catch (IOException e) {
+ throw e;
+ } catch (Exception e) {
+ throw (HttpException) new HttpException(500, "Could not process message!").initCause(e);
+ }
+ }
+ }
+
+ public static class RequestAdapter implements WebServiceContainer.Request {
+ private final Request request;
+ private URI uri;
+
+ public RequestAdapter(Request request) {
+ this.request = request;
+ }
+
+ public String getHeader(String name) {
+ return request.getHeader(name);
+ }
+
+ public java.net.URI getURI() {
+ if (uri == null) {
+ try {
+ //String uriString = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getRequestURI();
+ //return new java.net.URI(uri.getScheme(),uri.getHost(),uri.getPath(),uri.);
+ uri = new java.net.URI(request.getScheme(), null, request.getServerName(), request.getServerPort(), request.getRequestURI(), request.getQueryString(), null);
+ } catch (URISyntaxException e) {
+ throw new IllegalStateException(e.getMessage(), e);
+ }
+ }
+ return uri;
+ }
+
+ public int getContentLength() {
+ return request.getContentLength();
+ }
+
+ public String getContentType() {
+ return request.getContentType();
+ }
+
+ public InputStream getInputStream() throws IOException {
+ return request.getInputStream();
+ }
+
+ public int getMethod() {
+ Integer method = methods.get(request.getMethod());
+ return method == null ? UNSUPPORTED : method;
+ }
+
+ public String getParameter(String name) {
+ return request.getParameter(name);
+ }
+
+ public Map getParameters() {
+ return request.getParameterMap();
+ }
+
+ public Object getAttribute(String name) {
+ return request.getAttribute(name);
+ }
+
+ public void setAttribute(String name, Object value) {
+ request.setAttribute(name, value);
+ }
+
+ public String getRemoteAddr() {
+ return request.getRemoteAddr();
+ }
+
+ public String getContextPath() {
+ //request.getContextPath() isn't working correctly and returned null.
+ //use getRequestURI() for now before it is fixed.
+ //return request.getContextPath();
+ return request.getRequestURI();
+ }
+
+ private static final Map<String, Integer> methods = new HashMap<String, Integer>();
+
+ static {
+ methods.put("OPTIONS", OPTIONS);
+ methods.put("GET", GET);
+ methods.put("HEAD", HEAD);
+ methods.put("POST", POST);
+ methods.put("PUT", PUT);
+ methods.put("DELETE", DELETE);
+ methods.put("TRACE", TRACE);
+ methods.put("CONNECT", CONNECT);
+ }
+
+ }
+
+ public static class ResponseAdapter implements WebServiceContainer.Response {
+ private final Response response;
+
+ public ResponseAdapter(Response response) {
+ this.response = response;
+ }
+
+ public void setHeader(String name, String value) {
+ response.setHeader(name, value);
+ }
+
+ public String getHeader(String name) {
+ return response.getHeader(name);
+ }
+
+ public OutputStream getOutputStream() {
+ try {
+ return response.getOutputStream();
+ } catch (IOException e) {
+ throw new IllegalStateException(e.getMessage(), e);
+ }
+ }
+
+ public void setStatusCode(int code) {
+ response.setStatus(code);
+ }
+
+ public int getStatusCode() {
+ return response.getStatus();
+ }
+
+ public void setContentType(String type) {
+ response.setContentType(type);
+ }
+
+ public String getContentType() {
+ return response.getContentType();
+ }
+
+ public void setStatusMessage(String responseString) {
+ response.setStatus(response.getStatus(), responseString);
+ }
+
+ public void flushBuffer() throws java.io.IOException {
+ response.flushBuffer();
+ }
+ }
+
+}
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBServletHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBServletHandler.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBServletHandler.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceContext.java (from r788556, geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyEJBWebServiceContext.java)
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceContext.java?p2=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceContext.java&p1=geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyEJBWebServiceContext.java&r1=788556&r2=789622&rev=789622&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/JettyEJBWebServiceContext.java (original)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceContext.java Tue Jun 30 08:51:31 2009
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.geronimo.jetty7;
+package org.apache.geronimo.jetty7.handler;
import java.io.IOException;
import java.io.InputStream;
@@ -29,309 +29,25 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.geronimo.webservices.WebServiceContainer;
+import org.apache.geronimo.jetty7.security.SecurityHandlerFactory;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Response;
-import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.http.HttpException;
+import org.eclipse.jetty.servlet.ServletHandler;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.security.SecurityHandler;
/**
- * Delegates requests to a WebServiceContainer which is presumably for an EJB WebService.
- * <p/>
- * WebServiceContainer delegates to an EJBContainer that will ultimately provide the JNDI,
- * TX, and Security services for this web service.
- * <p/>
- * Nothing stopping us from using this for POJOs or other types of webservices if shared
- * Context (JNDI, tx, security) wasn't required to be supplied by the web context.
- * <p/>
- * From a 10,000 foot view the Jetty architecture has:
- * Container -> Context -> Holder -> Servlet
- * <p/>
- * A Container has multiple Contexts, typically webapps
- * A Context provides the JNDI, TX, and Security for the webapp and has many Holders
- * A Holder simply wraps each Servlet
- * <p/>
- * The POJO Web Service architecture on Jetty looks like this:
- * Container -> WebApp Context -> JettyPOJOWebServiceHolder -> POJOWebServiceServlet
- * <p/>
- * The EJB Web Service architecure, on the other hand, creates one Context for each EJB:
- * Container -> JettyEJBWebServiceContext
- *
+ * Specialization of ContextHandler that just has a security and servlet handler.
* @version $Rev$ $Date$
*/
-public class JettyEJBWebServiceContext extends ContextHandler {
+public class EJBWebServiceContext extends ServletContextHandler {
- private final String contextPath;
- private final WebServiceContainer webServiceContainer;
-// private final Authenticator authenticator;
-// private final JAASJettyRealm realm;
- private final boolean isConfidentialTransportGuarantee;
- private final boolean isIntegralTransportGuarantee;
- private final ClassLoader classLoader;
-
-
- public JettyEJBWebServiceContext(String contextPath, WebServiceContainer webServiceContainer, String realmName, String transportGuarantee, String authMethod, ClassLoader classLoader) {
- this.contextPath = contextPath;
- this.webServiceContainer = webServiceContainer;
+ public EJBWebServiceContext(String contextPath, SecurityHandler securityHandler, ServletHandler servletHandler, ClassLoader classLoader) {
+ super(null, contextPath, null, securityHandler, servletHandler, null);
this.setContextPath(contextPath);
+ setClassLoader(classLoader);
this.setAllowNullPathInfo(true);
-
-// if (internalJAASJettyRealm != null) {
- if (realmName != null) {
-// realm = new JAASJettyRealm(realmName, internalJAASJettyRealm);
- //TODO
- //not used???
- //setUserRealm(realm);
-// this.realm = realm;
- if ("NONE".equals(transportGuarantee)) {
- isConfidentialTransportGuarantee = false;
- isIntegralTransportGuarantee = false;
- } else if ("INTEGRAL".equals(transportGuarantee)) {
- isConfidentialTransportGuarantee = false;
- isIntegralTransportGuarantee = true;
- } else if ("CONFIDENTIAL".equals(transportGuarantee)) {
- isConfidentialTransportGuarantee = true;
- isIntegralTransportGuarantee = false;
- } else {
- throw new IllegalArgumentException("Invalid transport-guarantee: " + transportGuarantee);
- }
-// if ("BASIC".equals(authMethod)) {
-// authenticator = new BasicAuthenticator();
-// } else if ("DIGEST".equals(authMethod)) {
-// authenticator = new DigestAuthenticator();
-// } else if ("CLIENT-CERT".equals(authMethod)) {
-// authenticator = new ClientCertAuthenticator();
-// } else if ("NONE".equals(authMethod)) {
-// authenticator = null;
-// } else {
-// throw new IllegalArgumentException("Invalid authMethod: " + authMethod);
-// }
- } else {
-// realm = null;
-// authenticator = null;
- isConfidentialTransportGuarantee = false;
- isIntegralTransportGuarantee = false;
- }
- this.classLoader = classLoader;
- }
-
- public String getName() {
- //need a better name
- return contextPath;
- }
-
- public void doHandle(String target, Request baseRequest, HttpServletRequest req, HttpServletResponse res)
- throws IOException, ServletException
- {
- //TODO
- //do we need to check that this request should be handled by this handler?
-// if (! target.startsWith(contextPath)) {
-// return;
-// }
-// Request jettyRequest = (Request) req;
- Response jettyResponse = (Response) res;
- res.setContentType("text/xml");
- RequestAdapter request = new RequestAdapter(baseRequest);
- ResponseAdapter response = new ResponseAdapter(jettyResponse);
-
- request.setAttribute(WebServiceContainer.SERVLET_REQUEST, req);
- request.setAttribute(WebServiceContainer.SERVLET_RESPONSE, res);
- // TODO: add support for context
- request.setAttribute(WebServiceContainer.SERVLET_CONTEXT, null);
-
- if (req.getParameter("wsdl") != null) {
- try {
- webServiceContainer.getWsdl(request, response);
- baseRequest.setHandled(true);
- } catch (IOException e) {
- throw e;
- } catch (Exception e) {
- throw (HttpException) new HttpException(500, "Could not fetch wsdl!").initCause(e);
- }
- } else {
- if (isConfidentialTransportGuarantee) {
- if (!req.isSecure()) {
- throw new HttpException(403, null);
- }
- } else if (isIntegralTransportGuarantee) {
- if (!baseRequest.getConnection().isIntegral(baseRequest)) {
- throw new HttpException(403, null);
- }
- }
- Thread currentThread = Thread.currentThread();
- ClassLoader oldClassLoader = currentThread.getContextClassLoader();
- currentThread.setContextClassLoader(classLoader);
- //hard to imagine this could be anything but null, but....
-// Subject oldSubject = ContextManager.getCurrentCaller();
- try {
-// if (authenticator != null) {
-// String pathInContext = org.mortbay.util.URIUtil.canonicalPath(req.getContextPath());
-// if (authenticator.authenticate(realm, pathInContext, jettyRequest, jettyResponse) == null) {
-// throw new HttpException(403, null);
-// }
-// } else {
-// //EJB will figure out correct defaultSubject shortly
-// //TODO consider replacing the GenericEJBContainer.DefaultSubjectInterceptor with this line
-// //setting the defaultSubject.
-// ContextManager.popCallers(null);
-// }
- try {
- webServiceContainer.invoke(request, response);
- baseRequest.setHandled(true);
- } catch (IOException e) {
- throw e;
- } catch (Exception e) {
- throw (HttpException) new HttpException(500, "Could not process message!").initCause(e);
- }
- } finally {
-// ContextManager.setCurrentCaller(oldSubject);
- currentThread.setContextClassLoader(oldClassLoader);
- }
- }
-
- }
-
- public String getContextPath() {
- return contextPath;
}
-// public String getSecurityRealmName() {
-// if (realm == null) {
-// return null;
-// } else {
-// return realm.getSecurityRealmName();
-// }
-// }
-
- public static class RequestAdapter implements WebServiceContainer.Request {
- private final Request request;
- private URI uri;
-
- public RequestAdapter(Request request) {
- this.request = request;
- }
-
- public String getHeader(String name) {
- return request.getHeader(name);
- }
-
- public java.net.URI getURI() {
- if (uri == null) {
- try {
- //String uriString = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getRequestURI();
- //return new java.net.URI(uri.getScheme(),uri.getHost(),uri.getPath(),uri.);
- uri = new java.net.URI(request.getScheme(), null, request.getServerName(), request.getServerPort(), request.getRequestURI(), request.getQueryString(), null);
- } catch (URISyntaxException e) {
- throw new IllegalStateException(e.getMessage(), e);
- }
- }
- return uri;
- }
-
- public int getContentLength() {
- return request.getContentLength();
- }
-
- public String getContentType() {
- return request.getContentType();
- }
-
- public InputStream getInputStream() throws IOException {
- return request.getInputStream();
- }
-
- public int getMethod() {
- Integer method = (Integer) methods.get(request.getMethod());
- return method == null ? UNSUPPORTED : method.intValue();
- }
-
- public String getParameter(String name) {
- return request.getParameter(name);
- }
-
- public Map getParameters() {
- return request.getParameterMap();
- }
-
- public Object getAttribute(String name) {
- return request.getAttribute(name);
- }
-
- public void setAttribute(String name, Object value) {
- request.setAttribute(name, value);
- }
-
- public String getRemoteAddr() {
- return request.getRemoteAddr();
- }
-
- public String getContextPath() {
- //request.getContextPath() isn't working correctly and returned null.
- //use getRequestURI() for now before it is fixed.
- //return request.getContextPath();
- return request.getRequestURI();
- }
-
- private static final Map methods = new HashMap();
-
- static {
- methods.put("OPTIONS", new Integer(OPTIONS));
- methods.put("GET", new Integer(GET));
- methods.put("HEAD", new Integer(HEAD));
- methods.put("POST", new Integer(POST));
- methods.put("PUT", new Integer(PUT));
- methods.put("DELETE", new Integer(DELETE));
- methods.put("TRACE", new Integer(TRACE));
- methods.put("CONNECT", new Integer(CONNECT));
- }
-
- }
-
- public static class ResponseAdapter implements WebServiceContainer.Response {
- private final Response response;
-
- public ResponseAdapter(Response response) {
- this.response = response;
- }
-
- public void setHeader(String name, String value) {
- response.setHeader(name, value);
- }
-
- public String getHeader(String name) {
- return response.getHeader(name);
- }
-
- public OutputStream getOutputStream() {
- try {
- return response.getOutputStream();
- } catch (IOException e) {
- throw new IllegalStateException(e.getMessage(), e);
- }
- }
-
- public void setStatusCode(int code) {
- response.setStatus(code);
- }
-
- public int getStatusCode() {
- return response.getStatus();
- }
-
- public void setContentType(String type) {
- response.setContentType(type);
- }
-
- public String getContentType() {
- return response.getContentType();
- }
-
- public void setStatusMessage(String responseString) {
- response.setStatus(response.getStatus(), responseString);
- }
-
- public void flushBuffer() throws java.io.IOException{
- response.flushBuffer();
- }
- }
-
}
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceContext.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceContext.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceContext.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceSecurityHandler.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceSecurityHandler.java?rev=789622&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceSecurityHandler.java (added)
+++ geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceSecurityHandler.java Tue Jun 30 08:51:31 2009
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.geronimo.jetty7.handler;
+
+import java.io.IOException;
+import java.security.AccessControlContext;
+import java.security.Permission;
+
+import javax.security.jacc.WebUserDataPermission;
+
+import org.eclipse.jetty.security.SecurityHandler;
+import org.eclipse.jetty.security.Authenticator;
+import org.eclipse.jetty.security.LoginService;
+import org.eclipse.jetty.security.IdentityService;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Response;
+import org.eclipse.jetty.server.UserIdentity;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class EJBWebServiceSecurityHandler extends SecurityHandler {
+
+ private final Permission permission;
+
+ public EJBWebServiceSecurityHandler(
+ Authenticator authenticator,
+ final LoginService loginService,
+ IdentityService identityService,
+ Permission permission) {
+ setAuthenticator(authenticator);
+
+ loginService.setIdentityService(identityService);
+ setLoginService(loginService);
+ setIdentityService(identityService);
+ this.permission = permission;
+ }
+
+ protected Object prepareConstraintInfo(String pathInContext, Request request) {
+ return null;
+ }
+
+ protected boolean checkUserDataPermissions(String pathInContext, Request request, Response response, Object constraintInfo) throws IOException {
+ return permission.implies(new WebUserDataPermission(request));
+ }
+
+ protected boolean isAuthMandatory(Request baseRequest, Response base_response, Object constraintInfo) {
+ //TODO we were given a list of protected methods, but how to we figure out what the method is?
+ return true;
+ }
+
+ protected boolean checkWebResourcePermissions(String pathInContext, Request request, Response response, Object constraintInfo, UserIdentity userIdentity) throws IOException {
+ return true;
+ }
+}
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceSecurityHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceSecurityHandler.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/server/trunk/plugins/jetty7/geronimo-jetty7/src/main/java/org/apache/geronimo/jetty7/handler/EJBWebServiceSecurityHandler.java
------------------------------------------------------------------------------
svn:mime-type = text/plain