You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2008/09/11 05:52:03 UTC
svn commit: r694102 - in /openejb/trunk/openejb3:
assembly/openejb-itests-standalone-client/src/main/assembly/
assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/
assembly/test/ examples/webapps/ejb-example...
Author: dain
Date: Wed Sep 10 20:52:02 2008
New Revision: 694102
URL: http://svn.apache.org/viewvc?rev=694102&view=rev
Log:
Fixed broken isCallerInRole when using Tomcat JAASRealm with the TomcatSecurityService
Added basic security and runas tests to Tomcat itests
Added:
openejb/trunk/openejb3/examples/webapps/ejb-examples/build.xml
openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/webapp/WEB-INF/tomcat-users.xml
openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/RunAsServletTests.java
openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/SecureServletTests.java
- copied, changed from r689690, openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/EjbServletTests.java
openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/RunAsServlet.java
openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureEJB.java
- copied, changed from r689690, openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureEJB.java
openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureEJBLocal.java
- copied, changed from r689690, openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureEJBLocal.java
openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureServlet.java
- copied, changed from r689690, openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureServlet.java
openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/META-INF/
openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/META-INF/context.xml
openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/WEB-INF/tomcat-users.xml
Modified:
openejb/trunk/openejb3/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java
openejb/trunk/openejb3/assembly/test/build.xml
openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/webapp/META-INF/context.xml
openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/ServletTestClient.java
openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/ServletTestSuite.java
openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/WEB-INF/web.xml
Modified: openejb/trunk/openejb3/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml?rev=694102&r1=694101&r2=694102&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml Wed Sep 10 20:52:02 2008
@@ -54,8 +54,7 @@
<unpack>true</unpack>
<includes>
<include>org.apache.openejb:javaee-api</include>
- <include>org.apache.openejb:xbean-finder</include>
- <include>asm:asm</include>
+ <include>org.apache.openejb:asm-finder</include>
<include>junit:junit</include>
<include>org.apache.openejb:openejb-itests-beans</include>
<include>org.apache.openejb:openejb-itests-servlets</include>
Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java?rev=694102&r1=694101&r2=694102&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java Wed Sep 10 20:52:02 2008
@@ -38,7 +38,7 @@
public void invoke(Request request, Response response) throws IOException, ServletException {
Object oldState = null;
if (securityService != null && request.getWrapper() != null) {
- oldState = securityService.enterWebApp(request.getWrapper().getRealm(), request.getUserPrincipal(), request.getWrapper().getRunAs());
+ oldState = securityService.enterWebApp(request.getWrapper().getRealm(), request.getPrincipal(), request.getWrapper().getRunAs());
}
try {
Modified: openejb/trunk/openejb3/assembly/test/build.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/test/build.xml?rev=694102&r1=694101&r2=694102&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/test/build.xml (original)
+++ openejb/trunk/openejb3/assembly/test/build.xml Wed Sep 10 20:52:02 2008
@@ -315,7 +315,7 @@
<property name="itests.war.url" value="${maven.repo}/org/apache/openejb/openejb-itests-web/${openejb.version}/openejb-itests-web-${openejb.version}.war"/>
<property name="itests.war.file" value="${repo}/openejb/distributions/${openejb.version}/itests.war"/>
- <property name="itests.client.url" value="${maven.repo}/org/apache/openejb/openejb-itests-client/${openejb.version}/openejb-itests-client-${openejb.version}.jar"/>
+ <property name="itests.client.url" value="${maven.repo}/org/apache/openejb/openejb-itests-standalone-client/${openejb.version}/openejb-itests-standalone-client-${openejb.version}.jar"/>
<property name="itests.client.file" value="${repo}/openejb/distributions/${openejb.version}/openejb-itests-standalone-client.jar"/>
<condition property="tomcat.url" value="http://archive.apache.org/dist/tomcat/tomcat-6/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.zip">
Added: openejb/trunk/openejb3/examples/webapps/ejb-examples/build.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/webapps/ejb-examples/build.xml?rev=694102&view=auto
==============================================================================
--- openejb/trunk/openejb3/examples/webapps/ejb-examples/build.xml (added)
+++ openejb/trunk/openejb3/examples/webapps/ejb-examples/build.xml Wed Sep 10 20:52:02 2008
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+-->
+<!-- $Revision: 579817 $ $Date: 2007-09-26 14:56:30 -0700 (Wed, 26 Sep 2007) $ -->
+
+<project name="Test OpenEJB" default="test" basedir=".">
+ <property name="openejb.version" value="3.1-SNAPSHOT"/>
+ <property name="repo" location="${basedir}/repo"/>
+ <property name="target.dir" location="${basedir}/target"/>
+ <property name="windows.sleep" value="5"/>
+ <property name="unix.sleep" value="1"/>
+
+
+ <target name="clean">
+ <delete dir="${basedir}/activemq-data"/>
+ <delete dir="${target.dir}"/>
+ </target>
+
+ <target name="test">
+ <antcall target="test:tomcat6"/>
+ <antcall target="test:tomcat55"/>
+ </target>
+
+ <target name="test:all">
+ <antcall target="test:tomcat6:all"/>
+ <antcall target="test:tomcat55:all"/>
+ </target>
+
+ <target name="test:tomcat6">
+ <antcall target="tomcat.test">
+ <param name="tomcat.version" value="6.0.14"/>
+ </antcall>
+ </target>
+
+ <target name="test:tomcat6:all">
+ <antcall target="tomcat.test">
+ <param name="tomcat.version" value="6.0.14"/>
+ </antcall>
+ <antcall target="tomcat.test">
+ <param name="tomcat.version" value="6.0.13"/>
+ </antcall>
+ <antcall target="tomcat.test">
+ <param name="tomcat.version" value="6.0.10"/>
+ </antcall>
+ <antcall target="tomcat.test">
+ <param name="tomcat.version" value="6.0.9"/>
+ </antcall>
+ </target>
+
+ <target name="test:tomcat55">
+ <antcall target="tomcat.test">
+ <param name="tomcat.version" value="5.5.26"/>
+ </antcall>
+ </target>
+
+ <target name="test:tomcat55:all">
+ <antcall target="tomcat.test">
+ <param name="tomcat.version" value="5.5.26"/>
+ </antcall>
+ <antcall target="tomcat.test">
+ <param name="tomcat.version" value="5.5.25"/>
+ </antcall>
+ <antcall target="tomcat.test">
+ <param name="tomcat.version" value="5.5.23"/>
+ </antcall>
+ <antcall target="tomcat.test">
+ <param name="tomcat.version" value="5.5.20"/>
+ </antcall>
+ </target>
+
+ <target name="tomcat.test" depends="tomcat.test.setup">
+ <!-- unpack tomcat -->
+ <antcall target="tomcat.unpack"/>
+
+ <!-- copy openejb.war to webapps dir -->
+ <copy file="${openejb.war.file}" todir="${tomcat.home}/webapps"/>
+
+ <!-- install ejb-examples.war -->
+ <copy file="${basedir}/target/ejb-examples-1.1-SNAPSHOT.war" tofile="${tomcat.home}/webapps/ejb-examples.war"/>
+
+ <!-- start tomcat -->
+ <antcall target="tomcat.start"/>
+
+ <!-- run itests (Servlet started mode) -->
+ <antcall target="itests.tomcat.run"/>
+
+ <!-- stop tomcat -->
+ <antcall target="tomcat.stop"/>
+
+ <!-- Make sure all resources are collected on windows -->
+ <condition property="sleep" value="1" else="30">
+ <os family="unix"/>
+ </condition>
+ <echo message="Sleeping for ${sleep} sec to avoid Windows failures"/>
+ <sleep seconds="${sleep}"/>
+ </target>
+
+ <target name="tomcat.unpack">
+ <delete dir="${tomcat.home}"/>
+ <mkdir dir="${target.dir}"/>
+ <unjar src="${tomcat.file}" dest="${target.dir}"/>
+ <chmod dir="${tomcat.home}/bin" perm="u+x" includes="**/*.sh"/>
+ </target>
+
+ <target name="tomcat.start">
+ <echo message="Starting Tomcat ${tomcat.version}..."/>
+ <exec executable="${tomcat.home}/bin/startup.bat" spawn="true" osfamily="windows">
+ <env key="CATALINA_HOME" value="${tomcat.home}"/>
+ </exec>
+ <exec executable="${tomcat.home}/bin/startup.sh" osfamily="unix">
+ <!--env key="JAVA_OPTS" value="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/-->
+ </exec>
+ <waitfor maxwait="1" maxwaitunit="minute">
+ <and>
+ <socket server="localhost" port="8080"/>
+ <socket server="localhost" port="8005"/>
+ <socket server="localhost" port="8009"/>
+ <http url="http://localhost:8080/openejb/installer"/>
+ </and>
+ </waitfor>
+
+ <condition property="sleep" value="${unix.sleep}" else="${windows.sleep}">
+ <os family="unix"/>
+ </condition>
+ <echo message=" sleeping for ${sleep} sec"/>
+ <sleep seconds="${sleep}"/>
+
+ <echo message=" started"/>
+ </target>
+
+ <target name="tomcat.stop">
+ <echo message="Stopping Tomcat ${tomcat.version}..."/>
+ <exec executable="${tomcat.home}/bin/shutdown.bat" osfamily="windows">
+ <env key="CATALINA_HOME" value="${tomcat.home}"/>
+ </exec>
+ <exec executable="${tomcat.home}/bin/shutdown.sh" osfamily="unix"/>
+ <waitfor maxwait="1" maxwaitunit="minute">
+ <not>
+ <or>
+ <http url="http://localhost:8080"/>
+ <socket server="localhost" port="8080"/>
+ <socket server="localhost" port="8005"/>
+ <socket server="localhost" port="8009"/>
+ <socket server="localhost" port="61616"/>
+ </or>
+ </not>
+ </waitfor>
+
+ <condition property="sleep" value="${unix.sleep}" else="${windows.sleep}">
+ <os family="unix"/>
+ </condition>
+ <echo message=" sleeping for ${sleep} sec"/>
+ <sleep seconds="${sleep}"/>
+
+ <echo message=" stopped"/>
+ </target>
+
+ <target name="itests.tomcat.run">
+ <input>Press Return key to continue...</input>
+ </target>
+
+ <target name="tomcat.test.setup">
+ <property name="openejb.war.file" value="${user.home}/.m2/repository/org/apache/openejb/openejb-tomcat-webapp/${openejb.version}/openejb-tomcat-webapp-${openejb.version}.war"/>
+
+ <condition property="tomcat.url" value="http://archive.apache.org/dist/tomcat/tomcat-6/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.zip">
+ <matches pattern="^6\." string="${tomcat.version}"/>
+ </condition>
+ <condition property="tomcat.url" value="http://archive.apache.org/dist/tomcat/tomcat-5/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.zip">
+ <matches pattern="^5\.5" string="${tomcat.version}"/>
+ </condition>
+ <fail message="Unknown Tomcat version ${tomcat.version}" unless="tomcat.url"/>
+ <property name="tomcat.file" value="${repo}/tomcat/distributions/${tomcat.version}/tomcat.zip"/>
+
+ <property name="tomcat.home" value="${target.dir}/apache-tomcat-${tomcat.version}"/>
+
+ <antcall target="download.file">
+ <param name="download.url" value="${tomcat.url}"/>
+ <param name="download.file" value="${tomcat.file}"/>
+ </antcall>
+ </target>
+
+ <target name="download.uptodate">
+ <available file="${download.file}" property="download.uptodate"/>
+ </target>
+
+ <target name="download.file" depends="download.uptodate" unless="download.uptodate">
+ <dirname property="download.dir" file="${download.file}"/>
+ <mkdir dir="${download.dir}"/>
+ <get src="${download.url}" dest="${download.file}"/>
+ </target>
+</project>
Modified: openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/webapp/META-INF/context.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/webapp/META-INF/context.xml?rev=694102&r1=694101&r2=694102&view=diff
==============================================================================
--- openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/webapp/META-INF/context.xml (original)
+++ openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/webapp/META-INF/context.xml Wed Sep 10 20:52:02 2008
@@ -20,6 +20,10 @@
<!-- $Rev$ $Date$ -->
<Context>
+ <!-- This only works if the context is installed under the correct name -->
+ <Realm className="org.apache.catalina.realm.MemoryRealm"
+ pathname="webapps/ejb-examples/WEB-INF/tomcat-users.xml"/>
+
<Environment
name="context.xml/environment"
value="ContextString"
Added: openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/webapp/WEB-INF/tomcat-users.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/webapp/WEB-INF/tomcat-users.xml?rev=694102&view=auto
==============================================================================
--- openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/webapp/WEB-INF/tomcat-users.xml (added)
+++ openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/webapp/WEB-INF/tomcat-users.xml Wed Sep 10 20:52:02 2008
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+
+<!-- $Rev: 597221 $ $Date: 2007-11-21 22:51:05 +0100 (Wed, 21 Nov 2007) $ -->
+
+<tomcat-users>
+ <user name="manager" password="manager" roles="manager,user" />
+ <user name="user" password="user" roles="user" />
+</tomcat-users>
Added: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/RunAsServletTests.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/RunAsServletTests.java?rev=694102&view=auto
==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/RunAsServletTests.java (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/RunAsServletTests.java Wed Sep 10 20:52:02 2008
@@ -0,0 +1,36 @@
+/**
+ *
+ * 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.openejb.test.servlet;
+
+public class RunAsServletTests extends ServletTestClient {
+ public RunAsServletTests(){
+ super("RunAsServlet");
+ }
+
+ public void test01_invokeGetCallerPrincipal() {
+ invoke("invokeGetCallerPrincipal");
+ }
+
+ public void test02_invokeIsCallerInRole() {
+ invoke("invokeIsCallerInRole");
+ }
+
+ public void test03_invokeIsAllowed() {
+ invoke("invokeIsAllowed");
+ }
+}
\ No newline at end of file
Copied: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/SecureServletTests.java (from r689690, openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/EjbServletTests.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/SecureServletTests.java?p2=openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/SecureServletTests.java&p1=openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/EjbServletTests.java&r1=689690&r2=694102&rev=694102&view=diff
==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/EjbServletTests.java (original)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/SecureServletTests.java Wed Sep 10 20:52:02 2008
@@ -17,12 +17,20 @@
*/
package org.apache.openejb.test.servlet;
-public class EjbServletTests extends ServletTestClient {
- public EjbServletTests(){
- super("EjbServlet");
+public class SecureServletTests extends ServletTestClient {
+ public SecureServletTests(){
+ super("SecureServlet");
}
- public void test01_invokeBusinessMethod() {
- invoke("invokeBusinessMethod");
+ public void test01_invokeGetCallerPrincipal() {
+ invoke("invokeGetCallerPrincipal");
}
-}
+
+ public void test02_invokeIsCallerInRole() {
+ invoke("invokeIsCallerInRole");
+ }
+
+ public void test03_invokeIsAllowed() {
+ invoke("invokeIsAllowed");
+ }
+}
\ No newline at end of file
Modified: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/ServletTestClient.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/ServletTestClient.java?rev=694102&r1=694101&r2=694102&view=diff
==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/ServletTestClient.java (original)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/ServletTestClient.java Wed Sep 10 20:52:02 2008
@@ -24,6 +24,8 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
+import java.net.Authenticator;
+import java.net.PasswordAuthentication;
import java.util.Properties;
import javax.naming.InitialContext;
@@ -43,6 +45,15 @@
} catch (MalformedURLException e) {
throw new RuntimeException(e);
}
+
+ // install authenticator for protected urls
+ Authenticator.setDefault(new StaticAuthenticator());
+ }
+
+ private static class StaticAuthenticator extends Authenticator {
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication("user", "user".toCharArray());
+ }
}
/**
Modified: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/ServletTestSuite.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/ServletTestSuite.java?rev=694102&r1=694101&r2=694102&view=diff
==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/ServletTestSuite.java (original)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/servlet/ServletTestSuite.java Wed Sep 10 20:52:02 2008
@@ -29,6 +29,8 @@
TestSuite suite = new FilteredTestSuite();
suite.addTest(new AnnotatedServletTests());
suite.addTest(new EjbServletTests());
+ suite.addTest(new SecureServletTests());
+ suite.addTest(new RunAsServletTests());
suite.addTest(new WebserviceServletTests());
return suite;
}
Added: openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/RunAsServlet.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/RunAsServlet.java?rev=694102&view=auto
==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/RunAsServlet.java (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/RunAsServlet.java Wed Sep 10 20:52:02 2008
@@ -0,0 +1,132 @@
+/**
+ *
+ * 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.openejb.test.servlet;
+
+import javax.ejb.EJB;
+import javax.ejb.EJBAccessException;
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.security.Principal;
+import java.lang.reflect.Method;
+
+import junit.framework.Assert;
+
+public class RunAsServlet extends HttpServlet {
+ @EJB
+ private SecureEJBLocal secureEJBLocal;
+
+ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ response.setContentType("text/plain");
+ ServletOutputStream out = response.getOutputStream();
+ PrintStream printStream = new PrintStream(out);
+
+ String methodName = request.getParameter("method");
+ if (methodName == null) {
+ testAll(request, printStream);
+ } else {
+ try {
+ Method method = getClass().getMethod(methodName, HttpServletRequest.class);
+ method.invoke(this, request);
+ } catch (Throwable e) {
+ // response.setStatus(580);
+ printStream.println("FAILED");
+ e.printStackTrace(printStream);
+ }
+ }
+ printStream.flush();
+ }
+
+ public void testAll(HttpServletRequest request, PrintStream printStream) {
+ for (Method method : EjbServlet.class.getMethods()) {
+ if (!method.getName().startsWith("invoke")) continue;
+
+ try {
+ method.invoke(this);
+ printStream.println(method.getName() + " PASSED");
+ } catch (Throwable e) {
+ printStream.println(method.getName() + " FAILED");
+ e.printStackTrace(printStream);
+ printStream.flush();
+ }
+ printStream.println();
+ }
+ }
+
+ public void invokeGetCallerPrincipal(HttpServletRequest request) {
+ // Servlet environment - running as "user"
+ Principal principal = request.getUserPrincipal();
+ Assert.assertNotNull(principal);
+ Assert.assertEquals("user", principal.getName());
+
+ // EJB environment - running as "runas"
+ principal = secureEJBLocal.getCallerPrincipal();
+ Assert.assertNotNull(principal);
+ Assert.assertEquals("runas", principal.getName());
+ }
+
+ public void invokeIsCallerInRole(HttpServletRequest request) {
+ // Servlet environment - running as "user"
+ Assert.assertTrue(request.isUserInRole("user"));
+ Assert.assertFalse(request.isUserInRole("manager"));
+ Assert.assertFalse(request.isUserInRole("UNKNOWN"));
+ Assert.assertFalse(request.isUserInRole("runas"));
+
+ // EJB environment - running as "runas"
+ Assert.assertFalse(secureEJBLocal.isCallerInRole("user"));
+ Assert.assertFalse(secureEJBLocal.isCallerInRole("manager"));
+ Assert.assertFalse(secureEJBLocal.isCallerInRole("UNKNOWN"));
+ Assert.assertTrue(secureEJBLocal.isCallerInRole("runas"));
+ }
+
+ public void invokeIsAllowed(HttpServletRequest request) {
+ try {
+ secureEJBLocal.allowUserMethod();
+ Assert.fail("Method allowUserMethod() ALLOWED");
+ } catch(EJBAccessException expected) {
+ }
+
+ try {
+ secureEJBLocal.allowManagerMethod();
+ Assert.fail("Method allowManagerMethod() ALLOWED");
+ } catch(EJBAccessException expected) {
+ }
+
+ try {
+ secureEJBLocal.allowUnknownMethod();
+ Assert.fail("Method allowUnknownMethod() ALLOWED");
+ } catch(EJBAccessException expected) {
+ }
+
+ try {
+ secureEJBLocal.allowRunasMethod();
+ } catch(EJBAccessException e) {
+ Assert.fail("Method allowRunasMethod() NOT ALLOWED");
+ }
+
+ try {
+ secureEJBLocal.denyAllMethod();
+ Assert.fail("Method denyAllMethod() ALLOWED");
+ } catch(EJBAccessException expected) {
+ }
+ }
+}
\ No newline at end of file
Copied: openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureEJB.java (from r689690, openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureEJB.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureEJB.java?p2=openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureEJB.java&p1=openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureEJB.java&r1=689690&r2=694102&rev=694102&view=diff
==============================================================================
--- openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureEJB.java (original)
+++ openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureEJB.java Wed Sep 10 20:52:02 2008
@@ -15,7 +15,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.superbiz.servlet;
+package org.apache.openejb.test.servlet;
import javax.annotation.Resource;
import javax.annotation.security.DeclareRoles;
@@ -26,7 +26,7 @@
import java.security.Principal;
@Stateless
-@DeclareRoles({"user", "manager", "fake"})
+@DeclareRoles({"user", "manager", "UNKNOWN", "runas"})
public class SecureEJB implements SecureEJBLocal {
@Resource
private SessionContext context;
@@ -47,8 +47,12 @@
public void allowManagerMethod() {
}
- @RolesAllowed("fake")
- public void allowFakeMethod() {
+ @RolesAllowed("UNKNOWN")
+ public void allowUnknownMethod() {
+ }
+
+ @RolesAllowed("runas")
+ public void allowRunasMethod() {
}
@DenyAll
@@ -58,4 +62,4 @@
public String toString() {
return "SecureEJB[userName=" + getCallerPrincipal() + "]";
}
-}
+}
\ No newline at end of file
Copied: openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureEJBLocal.java (from r689690, openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureEJBLocal.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureEJBLocal.java?p2=openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureEJBLocal.java&p1=openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureEJBLocal.java&r1=689690&r2=694102&rev=694102&view=diff
==============================================================================
--- openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureEJBLocal.java (original)
+++ openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureEJBLocal.java Wed Sep 10 20:52:02 2008
@@ -15,7 +15,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.superbiz.servlet;
+package org.apache.openejb.test.servlet;
import javax.ejb.Local;
import java.security.Principal;
@@ -30,7 +30,9 @@
void allowManagerMethod();
- void allowFakeMethod();
+ void allowUnknownMethod();
+
+ void allowRunasMethod();
void denyAllMethod();
-}
+}
\ No newline at end of file
Copied: openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureServlet.java (from r689690, openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureServlet.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureServlet.java?p2=openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureServlet.java&p1=openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureServlet.java&r1=689690&r2=694102&rev=694102&view=diff
==============================================================================
--- openejb/trunk/openejb3/examples/webapps/ejb-examples/src/main/java/org/superbiz/servlet/SecureServlet.java (original)
+++ openejb/trunk/openejb3/itests/openejb-itests-servlets/src/main/java/org/apache/openejb/test/servlet/SecureServlet.java Wed Sep 10 20:52:02 2008
@@ -15,7 +15,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.superbiz.servlet;
+package org.apache.openejb.test.servlet;
import javax.ejb.EJB;
import javax.ejb.EJBAccessException;
@@ -25,68 +25,108 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.io.PrintStream;
import java.security.Principal;
+import java.lang.reflect.Method;
+
+import junit.framework.Assert;
public class SecureServlet extends HttpServlet {
@EJB
private SecureEJBLocal secureEJBLocal;
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
ServletOutputStream out = response.getOutputStream();
+ PrintStream printStream = new PrintStream(out);
- out.println("Servlet");
- Principal principal = request.getUserPrincipal();
- if (principal != null) {
- out.println("Servlet.getUserPrincipal()=" + principal + " [" + principal.getName() + "]");
+ String methodName = request.getParameter("method");
+ if (methodName == null) {
+ testAll(request, printStream);
} else {
- out.println("Servlet.getUserPrincipal()=<null>" );
- }
- out.println("Servlet.isCallerInRole(\"user\")=" + request.isUserInRole("user"));
- out.println("Servlet.isCallerInRole(\"manager\")=" + request.isUserInRole("manager"));
- out.println("Servlet.isCallerInRole(\"fake\")=" + request.isUserInRole("fake"));
- out.println();
-
- out.println("@EJB=" + secureEJBLocal);
- if (secureEJBLocal != null) {
- principal = secureEJBLocal.getCallerPrincipal();
- if (principal != null) {
- out.println("@EJB.getCallerPrincipal()=" + principal + " [" + principal.getName() + "]");
- } else {
- out.println("@EJB.getCallerPrincipal()=<null>" );
- }
- out.println("@EJB.isCallerInRole(\"user\")=" + secureEJBLocal.isCallerInRole("user"));
- out.println("@EJB.isCallerInRole(\"manager\")=" + secureEJBLocal.isCallerInRole("manager"));
- out.println("@EJB.isCallerInRole(\"fake\")=" + secureEJBLocal.isCallerInRole("fake"));
-
try {
- secureEJBLocal.allowUserMethod();
- out.println("@EJB.allowUserMethod() ALLOWED");
- } catch(EJBAccessException e) {
- out.println("@EJB.allowUserMethod() DENIED");
+ Method method = getClass().getMethod(methodName, HttpServletRequest.class);
+ method.invoke(this, request);
+ } catch (Throwable e) {
+ // response.setStatus(580);
+ printStream.println("FAILED");
+ e.printStackTrace(printStream);
}
+ }
+ printStream.flush();
+ }
- try {
- secureEJBLocal.allowManagerMethod();
- out.println("@EJB.allowManagerMethod() ALLOWED");
- } catch(EJBAccessException e) {
- out.println("@EJB.allowManagerMethod() DENIED");
- }
+ public void testAll(HttpServletRequest request, PrintStream printStream) {
+ for (Method method : EjbServlet.class.getMethods()) {
+ if (!method.getName().startsWith("invoke")) continue;
try {
- secureEJBLocal.allowFakeMethod();
- out.println("@EJB.allowFakeMethod() ALLOWED");
- } catch(EJBAccessException e) {
- out.println("@EJB.allowFakeMethod() DENIED");
+ method.invoke(this);
+ printStream.println(method.getName() + " PASSED");
+ } catch (Throwable e) {
+ printStream.println(method.getName() + " FAILED");
+ e.printStackTrace(printStream);
+ printStream.flush();
}
+ printStream.println();
+ }
+ }
- try {
- secureEJBLocal.denyAllMethod();
- out.println("@EJB.denyAllMethod() ALLOWED");
- } catch(EJBAccessException e) {
- out.println("@EJB.denyAllMethod() DENIED");
- }
+ public void invokeGetCallerPrincipal(HttpServletRequest request) {
+ // Servlet environment
+ Principal principal = request.getUserPrincipal();
+ Assert.assertNotNull(principal);
+ Assert.assertEquals("user", principal.getName());
+
+ // EJB environment
+ principal = secureEJBLocal.getCallerPrincipal();
+ Assert.assertNotNull(principal);
+ Assert.assertEquals("user", principal.getName());
+ }
+
+ public void invokeIsCallerInRole(HttpServletRequest request) {
+ // Servlet environment
+ Assert.assertTrue(request.isUserInRole("user"));
+ Assert.assertFalse(request.isUserInRole("manager"));
+ Assert.assertFalse(request.isUserInRole("UNKNOWN"));
+ Assert.assertFalse(request.isUserInRole("runas"));
+
+ // EJB environment
+ Assert.assertTrue(secureEJBLocal.isCallerInRole("user"));
+ Assert.assertFalse(secureEJBLocal.isCallerInRole("manager"));
+ Assert.assertFalse(secureEJBLocal.isCallerInRole("UNKNOWN"));
+ Assert.assertFalse(secureEJBLocal.isCallerInRole("runas"));
+ }
+
+ public void invokeIsAllowed(HttpServletRequest request) {
+ try {
+ secureEJBLocal.allowUserMethod();
+ } catch(EJBAccessException e) {
+ Assert.fail("Method allowUserMethod() NOT ALLOWED");
+ }
+
+ try {
+ secureEJBLocal.allowManagerMethod();
+ Assert.fail("Method allowManagerMethod() ALLOWED");
+ } catch(EJBAccessException expected) {
+ }
+
+ try {
+ secureEJBLocal.allowUnknownMethod();
+ Assert.fail("Method allowUnknownMethod() ALLOWED");
+ } catch(EJBAccessException expected) {
+ }
+
+ try {
+ secureEJBLocal.allowRunasMethod();
+ Assert.fail("Method allowRunasMethod() ALLOWED");
+ } catch(EJBAccessException expected) {
+ }
+
+ try {
+ secureEJBLocal.denyAllMethod();
+ Assert.fail("Method denyAllMethod() ALLOWED");
+ } catch(EJBAccessException expected) {
}
- out.println();
}
-}
+}
\ No newline at end of file
Added: openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/META-INF/context.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/META-INF/context.xml?rev=694102&view=auto
==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/META-INF/context.xml (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/META-INF/context.xml Wed Sep 10 20:52:02 2008
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+-->
+
+<!-- $Rev: 684152 $ $Date: 2008-08-08 17:02:32 -0700 (Fri, 08 Aug 2008) $ -->
+
+<Context>
+ <!-- This only works if the context is installed under the correct name -->
+ <Realm className="org.apache.catalina.realm.MemoryRealm"
+ pathname="webapps/itests/WEB-INF/tomcat-users.xml"/>
+</Context>
\ No newline at end of file
Added: openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/WEB-INF/tomcat-users.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/WEB-INF/tomcat-users.xml?rev=694102&view=auto
==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/WEB-INF/tomcat-users.xml (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/WEB-INF/tomcat-users.xml Wed Sep 10 20:52:02 2008
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+
+<!-- $Rev: 597221 $ $Date: 2007-11-21 22:51:05 +0100 (Wed, 21 Nov 2007) $ -->
+
+<tomcat-users>
+ <user name="user" password="user" roles="user" />
+</tomcat-users>
Modified: openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/WEB-INF/web.xml?rev=694102&r1=694101&r2=694102&view=diff
==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/WEB-INF/web.xml (original)
+++ openejb/trunk/openejb3/itests/openejb-itests-web/src/main/webapp/WEB-INF/web.xml Wed Sep 10 20:52:02 2008
@@ -27,6 +27,9 @@
<display-name>OpenEJB Servlet Examples</display-name>
+ <!-- =============== -->
+ <!-- Injection Tests -->
+ <!-- =============== -->
<servlet>
<servlet-name>AnnotatedServlet</servlet-name>
<servlet-class>org.apache.openejb.test.servlet.AnnotatedServlet</servlet-class>
@@ -37,6 +40,9 @@
<url-pattern>/AnnotatedServlet/*</url-pattern>
</servlet-mapping>
+ <!-- ==================== -->
+ <!-- EJB Invocation Tests -->
+ <!-- ==================== -->
<servlet>
<servlet-name>EjbServlet</servlet-name>
<servlet-class>org.apache.openejb.test.servlet.EjbServlet</servlet-class>
@@ -47,6 +53,50 @@
<url-pattern>/EjbServlet/*</url-pattern>
</servlet-mapping>
+ <!-- ============== -->
+ <!-- Security Tests -->
+ <!-- ============== -->
+ <servlet>
+ <servlet-name>SecureServlet</servlet-name>
+ <servlet-class>org.apache.openejb.test.servlet.SecureServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>SecureServlet</servlet-name>
+ <url-pattern>/SecureServlet/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>RunAsServlet</servlet-name>
+ <servlet-class>org.apache.openejb.test.servlet.RunAsServlet</servlet-class>
+ <run-as>
+ <role-name>runas</role-name>
+ </run-as>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>RunAsServlet</servlet-name>
+ <url-pattern>/RunAsServlet/*</url-pattern>
+ </servlet-mapping>
+
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>Secure Area</web-resource-name>
+ <url-pattern>/SecureServlet/*</url-pattern>
+ <url-pattern>/RunAsServlet/*</url-pattern>
+ </web-resource-collection>
+ <auth-constraint>
+ <role-name>user</role-name>
+ </auth-constraint>
+ </security-constraint>
+
+ <login-config>
+ <auth-method>BASIC</auth-method>
+ </login-config>
+
+ <!-- ================ -->
+ <!-- Webservice Tests -->
+ <!-- ================ -->
<servlet>
<servlet-name>WebserviceServlet</servlet-name>
<servlet-class>org.apache.openejb.test.servlet.WebserviceServlet</servlet-class>
@@ -58,141 +108,147 @@
</servlet-mapping>
<servlet>
- <servlet-name>JndiServlet</servlet-name>
- <servlet-class>org.apache.openejb.test.servlet.JndiServlet</servlet-class>
+ <servlet-name>HelloPojoService</servlet-name>
+ <servlet-class>org.apache.openejb.test.servlet.HelloPojoService</servlet-class>
</servlet>
<servlet-mapping>
+ <servlet-name>HelloPojoService</servlet-name>
+ <url-pattern>/hello</url-pattern>
+ </servlet-mapping>
+
+ <!-- ============ -->
+ <!-- JNDI Entries -->
+ <!-- ============ -->
+ <env-entry>
+ <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/booolean</env-entry-name>
+ <env-entry-type>java.lang.Boolean</env-entry-type>
+ <env-entry-value>true</env-entry-value>
+ </env-entry>
+ <env-entry>
+ <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/striing</env-entry-name>
+ <env-entry-type>java.lang.String</env-entry-type>
+ <env-entry-value>1</env-entry-value>
+ </env-entry>
+ <env-entry>
+ <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/doouble</env-entry-name>
+ <env-entry-type>java.lang.Double</env-entry-type>
+ <env-entry-value>1</env-entry-value>
+ </env-entry>
+ <env-entry>
+ <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/loong</env-entry-name>
+ <env-entry-type>java.lang.Long</env-entry-type>
+ <env-entry-value>1</env-entry-value>
+ </env-entry>
+ <env-entry>
+ <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/flooat</env-entry-name>
+ <env-entry-type>java.lang.Float</env-entry-type>
+ <env-entry-value>1</env-entry-value>
+ </env-entry>
+ <env-entry>
+ <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/inteeger</env-entry-name>
+ <env-entry-type>java.lang.Integer</env-entry-type>
+ <env-entry-value>1</env-entry-value>
+ </env-entry>
+ <env-entry>
+ <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/shoort</env-entry-name>
+ <env-entry-type>java.lang.Short</env-entry-type>
+ <env-entry-value>1</env-entry-value>
+ </env-entry>
+ <env-entry>
+ <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/byyte</env-entry-name>
+ <env-entry-type>java.lang.Byte</env-entry-type>
+ <env-entry-value>1</env-entry-value>
+ </env-entry>
+ <env-entry>
+ <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/chaaracter</env-entry-name>
+ <env-entry-type>java.lang.Character</env-entry-type>
+ <env-entry-value>D</env-entry-value>
+ </env-entry>
+ <ejb-ref>
+ <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/bmpHome</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>org.apache.openejb.test.entity.bmp.BasicBmpHome</home>
+ <remote>org.apache.openejb.test.entity.bmp.BasicBmpObject</remote>
+ <ejb-link>BasicBmpBean</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statefulHome</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.apache.openejb.test.stateful.BasicStatefulHome</home>
+ <remote>org.apache.openejb.test.stateful.BasicStatefulObject</remote>
+ <ejb-link>BasicStatefulBean</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statelessHome</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.apache.openejb.test.stateless.BasicStatelessHome</home>
+ <remote>org.apache.openejb.test.stateless.BasicStatelessObject</remote>
+ <ejb-link>BasicStatelessBean</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statelessBusinessRemote</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <remote>org.apache.openejb.test.stateless.BasicStatelessBusinessRemote</remote>
+ <ejb-link>BasicStatelessPojoBean</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statefulBusinessRemote</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <remote>org.apache.openejb.test.stateful.BasicStatefulBusinessRemote</remote>
+ <ejb-link>BasicStatefulPojoBean</ejb-link>
+ </ejb-ref>
+ <ejb-local-ref>
+ <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statelessBusinessLocal</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local>org.apache.openejb.test.stateless.BasicStatelessBusinessLocal</local>
+ <ejb-link>BasicStatelessPojoBean</ejb-link>
+ </ejb-local-ref>
+ <ejb-local-ref>
+ <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statefulBusinessLocal</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local>org.apache.openejb.test.stateful.BasicStatefulBusinessLocal</local>
+ <ejb-link>BasicStatefulPojoBean</ejb-link>
+ </ejb-local-ref>
+ <resource-ref>
+ <res-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/daataSource</res-ref-name>
+ <res-type>javax.sql.DataSource</res-type>
+ <res-auth>Container</res-auth>
+ </resource-ref>
+ <resource-ref>
+ <res-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/coonnectionFactory</res-ref-name>
+ <res-type>javax.jms.ConnectionFactory</res-type>
+ <res-auth>Container</res-auth>
+ </resource-ref>
+ <resource-ref>
+ <res-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/queueCoonnectionFactory</res-ref-name>
+ <res-type>javax.jms.QueueConnectionFactory</res-type>
+ <res-auth>Container</res-auth>
+ </resource-ref>
+ <resource-ref>
+ <res-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/topicCoonnectionFactory</res-ref-name>
+ <res-type>javax.jms.TopicConnectionFactory</res-type>
+ <res-auth>Container</res-auth>
+ </resource-ref>
+ <persistence-context-ref>
+ <persistence-context-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/em</persistence-context-ref-name>
+ <persistence-unit-name>openjpa-test-unit</persistence-unit-name>
+ </persistence-context-ref>
+ <persistence-unit-ref>
+ <persistence-unit-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/emf</persistence-unit-ref-name>
+ <persistence-unit-name>openjpa-test-unit</persistence-unit-name>
+ </persistence-unit-ref>
+
+
+ <!-- ============= -->
+ <!-- For Debugging -->
+ <!-- ============= -->
+ <servlet>
+ <servlet-name>JndiServlet</servlet-name>
+ <servlet-class>org.apache.openejb.test.servlet.JndiServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
<servlet-name>JndiServlet</servlet-name>
<url-pattern>/JndiServlet/*</url-pattern>
</servlet-mapping>
-
- <servlet>
- <servlet-name>HelloPojoService</servlet-name>
- <servlet-class>org.apache.openejb.test.servlet.HelloPojoService</servlet-class>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>HelloPojoService</servlet-name>
- <url-pattern>/hello</url-pattern>
- </servlet-mapping>
-
- <env-entry>
- <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/booolean</env-entry-name>
- <env-entry-type>java.lang.Boolean</env-entry-type>
- <env-entry-value>true</env-entry-value>
- </env-entry>
- <env-entry>
- <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/striing</env-entry-name>
- <env-entry-type>java.lang.String</env-entry-type>
- <env-entry-value>1</env-entry-value>
- </env-entry>
- <env-entry>
- <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/doouble</env-entry-name>
- <env-entry-type>java.lang.Double</env-entry-type>
- <env-entry-value>1</env-entry-value>
- </env-entry>
- <env-entry>
- <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/loong</env-entry-name>
- <env-entry-type>java.lang.Long</env-entry-type>
- <env-entry-value>1</env-entry-value>
- </env-entry>
- <env-entry>
- <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/flooat</env-entry-name>
- <env-entry-type>java.lang.Float</env-entry-type>
- <env-entry-value>1</env-entry-value>
- </env-entry>
- <env-entry>
- <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/inteeger</env-entry-name>
- <env-entry-type>java.lang.Integer</env-entry-type>
- <env-entry-value>1</env-entry-value>
- </env-entry>
- <env-entry>
- <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/shoort</env-entry-name>
- <env-entry-type>java.lang.Short</env-entry-type>
- <env-entry-value>1</env-entry-value>
- </env-entry>
- <env-entry>
- <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/byyte</env-entry-name>
- <env-entry-type>java.lang.Byte</env-entry-type>
- <env-entry-value>1</env-entry-value>
- </env-entry>
- <env-entry>
- <env-entry-name>org.apache.openejb.test.servlet.AnnotatedServlet/chaaracter</env-entry-name>
- <env-entry-type>java.lang.Character</env-entry-type>
- <env-entry-value>D</env-entry-value>
- </env-entry>
- <ejb-ref>
- <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/bmpHome</ejb-ref-name>
- <ejb-ref-type>Entity</ejb-ref-type>
- <home>org.apache.openejb.test.entity.bmp.BasicBmpHome</home>
- <remote>org.apache.openejb.test.entity.bmp.BasicBmpObject</remote>
- <ejb-link>BasicBmpBean</ejb-link>
- </ejb-ref>
- <ejb-ref>
- <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statefulHome</ejb-ref-name>
- <ejb-ref-type>Session</ejb-ref-type>
- <home>org.apache.openejb.test.stateful.BasicStatefulHome</home>
- <remote>org.apache.openejb.test.stateful.BasicStatefulObject</remote>
- <ejb-link>BasicStatefulBean</ejb-link>
- </ejb-ref>
- <ejb-ref>
- <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statelessHome</ejb-ref-name>
- <ejb-ref-type>Session</ejb-ref-type>
- <home>org.apache.openejb.test.stateless.BasicStatelessHome</home>
- <remote>org.apache.openejb.test.stateless.BasicStatelessObject</remote>
- <ejb-link>BasicStatelessBean</ejb-link>
- </ejb-ref>
- <ejb-ref>
- <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statelessBusinessRemote</ejb-ref-name>
- <ejb-ref-type>Session</ejb-ref-type>
- <remote>org.apache.openejb.test.stateless.BasicStatelessBusinessRemote</remote>
- <ejb-link>BasicStatelessPojoBean</ejb-link>
- </ejb-ref>
- <ejb-ref>
- <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statefulBusinessRemote</ejb-ref-name>
- <ejb-ref-type>Session</ejb-ref-type>
- <remote>org.apache.openejb.test.stateful.BasicStatefulBusinessRemote</remote>
- <ejb-link>BasicStatefulPojoBean</ejb-link>
- </ejb-ref>
- <ejb-local-ref>
- <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statelessBusinessLocal</ejb-ref-name>
- <ejb-ref-type>Session</ejb-ref-type>
- <local>org.apache.openejb.test.stateless.BasicStatelessBusinessLocal</local>
- <ejb-link>BasicStatelessPojoBean</ejb-link>
- </ejb-local-ref>
- <ejb-local-ref>
- <ejb-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/statefulBusinessLocal</ejb-ref-name>
- <ejb-ref-type>Session</ejb-ref-type>
- <local>org.apache.openejb.test.stateful.BasicStatefulBusinessLocal</local>
- <ejb-link>BasicStatefulPojoBean</ejb-link>
- </ejb-local-ref>
- <resource-ref>
- <res-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/daataSource</res-ref-name>
- <res-type>javax.sql.DataSource</res-type>
- <res-auth>Container</res-auth>
- </resource-ref>
- <resource-ref>
- <res-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/coonnectionFactory</res-ref-name>
- <res-type>javax.jms.ConnectionFactory</res-type>
- <res-auth>Container</res-auth>
- </resource-ref>
- <resource-ref>
- <res-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/queueCoonnectionFactory</res-ref-name>
- <res-type>javax.jms.QueueConnectionFactory</res-type>
- <res-auth>Container</res-auth>
- </resource-ref>
- <resource-ref>
- <res-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/topicCoonnectionFactory</res-ref-name>
- <res-type>javax.jms.TopicConnectionFactory</res-type>
- <res-auth>Container</res-auth>
- </resource-ref>
- <persistence-context-ref>
- <persistence-context-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/em</persistence-context-ref-name>
- <persistence-unit-name>openjpa-test-unit</persistence-unit-name>
- </persistence-context-ref>
- <persistence-unit-ref>
- <persistence-unit-ref-name>org.apache.openejb.test.servlet.AnnotatedServlet/emf</persistence-unit-ref-name>
- <persistence-unit-name>openjpa-test-unit</persistence-unit-name>
- </persistence-unit-ref>
</web-app>