[jboss-cvs] JBossAS SVN: r63609 - branches/Branch_4_2/aspects/src/main/org/jboss/aspects/security.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jun 22 09:45:35 EDT 2007


Author: kabir.khan at jboss.com
Date: 2007-06-22 09:45:34 -0400 (Fri, 22 Jun 2007)
New Revision: 63609

Modified:
   branches/Branch_4_2/aspects/src/main/org/jboss/aspects/security/RunAsSecurityInterceptor.java
   branches/Branch_4_2/aspects/src/main/org/jboss/aspects/security/SecurityClassMetaDataLoader.java
Log:
[JBAOP-193] SecurityClassMetaDataLoader.bind() should create a RunAsIdentity instead of a SimplePrincipal. RunAsInterceptor should check the class annotation if no @RunAs is found at joinpoint level

Modified: branches/Branch_4_2/aspects/src/main/org/jboss/aspects/security/RunAsSecurityInterceptor.java
===================================================================
--- branches/Branch_4_2/aspects/src/main/org/jboss/aspects/security/RunAsSecurityInterceptor.java	2007-06-22 13:38:16 UTC (rev 63608)
+++ branches/Branch_4_2/aspects/src/main/org/jboss/aspects/security/RunAsSecurityInterceptor.java	2007-06-22 13:45:34 UTC (rev 63609)
@@ -21,6 +21,9 @@
  */
 package org.jboss.aspects.security;
 
+import java.lang.annotation.Annotation;
+import java.util.Arrays;
+
 import org.jboss.aop.joinpoint.Invocation;
 import org.jboss.logging.Logger;
 import org.jboss.security.AuthenticationManager;
@@ -59,6 +62,10 @@
    protected RunAsIdentity getAnnotationRunAsIdentity(Invocation invocation)
    {
       RunAs runAs = (RunAs) invocation.resolveAnnotation(RunAs.class);
+      if (runAs == null)
+      {
+         runAs = (RunAs) invocation.resolveClassAnnotation(RunAs.class);
+      }
       if (runAs == null) return null;
       RunAsIdentity runAsRole = new RunAsIdentity(runAs.value(), null);
       return runAsRole;
@@ -66,6 +73,7 @@
    public Object invoke(org.jboss.aop.joinpoint.Invocation invocation) throws Throwable
    {
       RunAsIdentity runAsRole = getRunAsIdentity(invocation);
+      
       // If a run-as role was specified, push it so that any calls made
       // by this bean will have the runAsRole available for declarative
       // security checks.

Modified: branches/Branch_4_2/aspects/src/main/org/jboss/aspects/security/SecurityClassMetaDataLoader.java
===================================================================
--- branches/Branch_4_2/aspects/src/main/org/jboss/aspects/security/SecurityClassMetaDataLoader.java	2007-06-22 13:38:16 UTC (rev 63608)
+++ branches/Branch_4_2/aspects/src/main/org/jboss/aspects/security/SecurityClassMetaDataLoader.java	2007-06-22 13:45:34 UTC (rev 63609)
@@ -31,6 +31,7 @@
 import org.jboss.aop.util.XmlHelper;
 import org.jboss.security.AnybodyPrincipal;
 import org.jboss.security.NobodyPrincipal;
+import org.jboss.security.RunAsIdentity;
 import org.jboss.security.SimplePrincipal;
 import org.w3c.dom.Element;
 
@@ -124,7 +125,7 @@
 
       if (meta.getRunAs() != null)
       {
-         advisor.getDefaultMetaData().addMetaData("security", "run-as", new SimplePrincipal(meta.getRunAs()), PayloadKey.TRANSIENT);
+         advisor.getDefaultMetaData().addMetaData("security", "run-as", new RunAsIdentity(meta.getRunAs(), null), PayloadKey.TRANSIENT);
       }
    }
 




More information about the jboss-cvs-commits mailing list