[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