[jboss-cvs] JBossAS SVN: r114512 - in projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842: src/main/java/org/jboss/ejb3/security and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Aug 14 11:22:33 EDT 2013


Author: dehort
Date: 2013-08-14 11:22:33 -0400 (Wed, 14 Aug 2013)
New Revision: 114512

Modified:
   projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/
   projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java
   projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/SecuredBean.java
   projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/SecuredLocal.java
   projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/unit/AuthenticationInterceptorTestCase.java
Log:
Commiting a fix where a call to an @PermitAll method fails if there is no security context
[JBPAPP-10842]



Property changes on: projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842
___________________________________________________________________
Added: svn:mergeinfo
   + /projects/ejb3/branches/jboss-ejb3-core-1.3:114510
/projects/ejb3/branches/jboss-ejb3-core-1.3.8-JBPAPP-10802:114494

Modified: projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java
===================================================================
--- projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java	2013-08-14 15:14:02 UTC (rev 114511)
+++ projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/main/java/org/jboss/ejb3/security/Ejb3AuthenticationInterceptorv2.java	2013-08-14 15:22:33 UTC (rev 114512)
@@ -106,8 +106,12 @@
             if(invSC == null)
             {
                if(prevSC == null)
-                  throw new IllegalStateException("Local Call: Security Context is null");
-               populateSecurityContext(sc, prevSC);
+               {
+                  log.trace("Local Call: Security Context is null");
+                  populateSecurityContext(sc, sc);
+               }
+               else
+                  populateSecurityContext(sc, prevSC);
             }
             else
             { 

Modified: projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/SecuredBean.java
===================================================================
--- projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/SecuredBean.java	2013-08-14 15:14:02 UTC (rev 114511)
+++ projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/SecuredBean.java	2013-08-14 15:22:33 UTC (rev 114512)
@@ -25,6 +25,7 @@
 
 import javax.annotation.Resource;
 import javax.annotation.security.RolesAllowed;
+import javax.annotation.security.PermitAll;
 import javax.ejb.SessionContext;
 import javax.ejb.Stateless;
 
@@ -51,7 +52,13 @@
    {
       // do nothing
    }
-   
+
+   @PermitAll
+   public void permitAll()
+   {
+      // do nothing
+   }
+  
    public String whoAmI()
    {
       return ctx.getCallerPrincipal().getName();

Modified: projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/SecuredLocal.java
===================================================================
--- projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/SecuredLocal.java	2013-08-14 15:14:02 UTC (rev 114511)
+++ projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/SecuredLocal.java	2013-08-14 15:22:33 UTC (rev 114512)
@@ -35,6 +35,8 @@
    Principal getCallerPrincipal();
    
    void onlyAdmin();
+
+   void permitAll();
    
    String whoAmI();
 }

Modified: projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/unit/AuthenticationInterceptorTestCase.java
===================================================================
--- projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/unit/AuthenticationInterceptorTestCase.java	2013-08-14 15:14:02 UTC (rev 114511)
+++ projects/ejb3/branches/jboss-ejb3-core-1.3.9_JBPAPP-10842/src/test/java/org/jboss/ejb3/core/test/ejbthree1646/unit/AuthenticationInterceptorTestCase.java	2013-08-14 15:22:33 UTC (rev 114512)
@@ -158,4 +158,25 @@
       
       assertSame(sc, SecurityContextAssociation.getSecurityContext());
    }
+
+   @Test
+   public void testCallingInterceptorWithNullSecurityContext() throws Exception
+   {
+      SecuredLocal bean = lookup("SecuredBean/local", SecuredLocal.class);
+      
+      assertEquals("nobody", bean.whoAmI());
+
+      bean.permitAll();
+      
+      try
+      {
+         bean.onlyAdmin();
+         fail("Should have thrown EJBAccessException");
+      }
+      catch(EJBAccessException e)
+      {
+         // good
+      }
+   }
+
 }



More information about the jboss-cvs-commits mailing list