[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