[jboss-cvs] JBossAS SVN: r92506 - in branches/JBPAPP_5_0/testsuite: src/main/org/jboss/test/ejb3 and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Aug 18 06:45:12 EDT 2009
Author: wolfc
Date: 2009-08-18 06:45:11 -0400 (Tue, 18 Aug 2009)
New Revision: 92506
Added:
branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/
branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/RunAsManagerBean.java
branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/RunAsPrincipalBean.java
branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/WhoAmI.java
branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/WhoAmIBean.java
branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/unit/
branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/unit/RunAsUnitTestCase.java
Modified:
branches/JBPAPP_5_0/testsuite/imports/sections/ejb3.xml
Log:
JBPAPP-2473: unit test
Modified: branches/JBPAPP_5_0/testsuite/imports/sections/ejb3.xml
===================================================================
--- branches/JBPAPP_5_0/testsuite/imports/sections/ejb3.xml 2009-08-18 10:39:38 UTC (rev 92505)
+++ branches/JBPAPP_5_0/testsuite/imports/sections/ejb3.xml 2009-08-18 10:45:11 UTC (rev 92506)
@@ -61,6 +61,20 @@
</jar>
</target>
+ <target name="jbpapp2473" depends="compile">
+ <mkdir dir="${build.lib}" />
+
+ <jar destfile="${build.lib}/jbpapp2473.jar">
+ <fileset dir="${build.classes}">
+ <!-- include name="org/jboss/test/ejb3/common/**" / -->
+ <include name="org/jboss/test/ejb3/jbpapp2473/**" />
+ </fileset>
+ <!--
+ <fileset dir="${source.resources}/ejb3/jbpapp2473" includes="**"/>
+ -->
+ </jar>
+ </target>
+
<!-- This issue affected the ejb3 AS module -->
<target name="ejbthree1597" depends="compile">
<mkdir dir="${build.lib}"/>
@@ -143,7 +157,8 @@
<target name="_jars-ejb3" depends="ejb3-servlet,jbas6161,jbas6239,ejbthree1597,jbas5713,
ejb3-webservice,
- jbpapp2260
+ jbpapp2260,
+ jbpapp2473
">
<mkdir dir="${build.lib}" />
Added: branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/RunAsManagerBean.java
===================================================================
--- branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/RunAsManagerBean.java (rev 0)
+++ branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/RunAsManagerBean.java 2009-08-18 10:45:11 UTC (rev 92506)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ejb3.jbpapp2473;
+
+import javax.annotation.security.RunAs;
+import javax.ejb.EJB;
+import javax.ejb.Remote;
+import javax.ejb.Stateless;
+
+import org.jboss.ejb3.annotation.SecurityDomain;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+ at Stateless
+ at SecurityDomain(value="other", unauthenticatedPrincipal="nobody")
+ at RunAs("manager")
+ at Remote(WhoAmI.class)
+public class RunAsManagerBean implements WhoAmI
+{
+ @EJB
+ private WhoAmI whoAmI;
+
+ public String getCallerPrincipal()
+ {
+ return whoAmI.getCallerPrincipal();
+ }
+
+ public boolean isCallerInRole(String roleName)
+ {
+ return whoAmI.isCallerInRole(roleName);
+ }
+}
Added: branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/RunAsPrincipalBean.java
===================================================================
--- branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/RunAsPrincipalBean.java (rev 0)
+++ branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/RunAsPrincipalBean.java 2009-08-18 10:45:11 UTC (rev 92506)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ejb3.jbpapp2473;
+
+import javax.annotation.security.RunAs;
+import javax.ejb.EJB;
+import javax.ejb.Remote;
+import javax.ejb.Stateless;
+
+import org.jboss.ejb3.annotation.RunAsPrincipal;
+import org.jboss.ejb3.annotation.SecurityDomain;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+ at Stateless
+ at SecurityDomain(value="other", unauthenticatedPrincipal="nobody")
+ at RunAs("manager")
+ at RunAsPrincipal("jbpapp2473")
+ at Remote(WhoAmI.class)
+public class RunAsPrincipalBean implements WhoAmI
+{
+ @EJB
+ private WhoAmI whoAmI;
+
+ public String getCallerPrincipal()
+ {
+ return whoAmI.getCallerPrincipal();
+ }
+
+ public boolean isCallerInRole(String roleName)
+ {
+ return whoAmI.isCallerInRole(roleName);
+ }
+}
Added: branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/WhoAmI.java
===================================================================
--- branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/WhoAmI.java (rev 0)
+++ branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/WhoAmI.java 2009-08-18 10:45:11 UTC (rev 92506)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ejb3.jbpapp2473;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public interface WhoAmI
+{
+ String getCallerPrincipal();
+
+ boolean isCallerInRole(String roleName);
+}
Added: branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/WhoAmIBean.java
===================================================================
--- branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/WhoAmIBean.java (rev 0)
+++ branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/WhoAmIBean.java 2009-08-18 10:45:11 UTC (rev 92506)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ejb3.jbpapp2473;
+
+import javax.annotation.Resource;
+import javax.ejb.SessionContext;
+import javax.ejb.Stateless;
+
+import org.jboss.ejb3.annotation.SecurityDomain;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+ at Stateless
+ at SecurityDomain(value="other", unauthenticatedPrincipal="nobody")
+public class WhoAmIBean implements WhoAmI
+{
+ @Resource
+ private SessionContext ctx;
+
+ public String getCallerPrincipal()
+ {
+ return ctx.getCallerPrincipal().getName();
+ }
+
+ public boolean isCallerInRole(String roleName)
+ {
+ return ctx.isCallerInRole(roleName);
+ }
+}
Added: branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/unit/RunAsUnitTestCase.java
===================================================================
--- branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/unit/RunAsUnitTestCase.java (rev 0)
+++ branches/JBPAPP_5_0/testsuite/src/main/org/jboss/test/ejb3/jbpapp2473/unit/RunAsUnitTestCase.java 2009-08-18 10:45:11 UTC (rev 92506)
@@ -0,0 +1,75 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ejb3.jbpapp2473.unit;
+
+import junit.framework.Test;
+
+import org.jboss.test.ejb3.common.EJB3TestCase;
+import org.jboss.test.ejb3.jbpapp2473.WhoAmI;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class RunAsUnitTestCase extends EJB3TestCase
+{
+ public RunAsUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void testRole1() throws Exception
+ {
+ WhoAmI bean = lookup("RunAsManagerBean/remote", WhoAmI.class);
+
+ assertTrue("RunAsManagerBean specifies a RunAs 'manager' role", bean.isCallerInRole("manager"));
+ }
+
+ public void testRole2() throws Exception
+ {
+ WhoAmI bean = lookup("RunAsPrincipalBean/remote", WhoAmI.class);
+
+ assertTrue("RunAsPrincipalBean specifies a RunAs 'manager' role", bean.isCallerInRole("manager"));
+ }
+
+ public void testRunAsManager() throws Exception
+ {
+ WhoAmI bean = lookup("RunAsManagerBean/remote", WhoAmI.class);
+
+ String caller = bean.getCallerPrincipal();
+ // TODO: note that there is a bug in RunAsIdentity which hard-codes anonymous
+ assertEquals("RunAsManagerBean doesn't override the principal", "anonymous", caller);
+ }
+
+ public void testRunAsPrincipal() throws Exception
+ {
+ WhoAmI bean = lookup("RunAsPrincipalBean/remote", WhoAmI.class);
+
+ String caller = bean.getCallerPrincipal();
+ assertEquals("RunAsPrincipalBean overrides the principal", "jbpapp2473", caller);
+ }
+
+ public static Test suite() throws Exception
+ {
+ return getDeploySetup(RunAsUnitTestCase.class, "jbpapp2473.jar");
+ }
+}
More information about the jboss-cvs-commits
mailing list