[ 
https://issues.apache.org/jira/browse/OWB-312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12858614#action_12858614
 ] 

YING WANG commented on OWB-312:
-------------------------------


To avoid this annoying "Access denied" Exceptions when java2 security enabled, 
does anyone mind if I delegate invocations of following methods to some 
SecurityUtil class and add doPrivileged guard around them?

Method.setAccess(boolean)  ==> SecurityUtil.doPrivilegedSetAccess(Method, 
boolean)
Class.setAccess(boolean)  ==> SecurityUtil.doPrivilegedSetAccess(Class, boolean)
Class.getDeclaredConstructors()  ==> 
SecurityUtil.doPrivilegedGetDeclaredConstructors(Class)
Class.getDeclaredConstructor(...)  ==> 
SecurityUtil.doPrivilegedSGetDeclaredConstructor(Class..)
Class.getDeclaredMethods()  ==> 
SecurityUtil.doPrivilegedGetDeclaredMethods(Class)
Class.getDeclaredMethod(...)  ==> 
SecurityUtil.doPrivilegedGetDeclaredMethods(Class..)
Class.getDeclaredFields()   ==> 
SecurityUtil.doPrivilegedGetDeclaredFields(Class)
Class.getDeclaredField(...)  ==> 
SecurityUtil.doPrivilegedGetDeclaredField(Class..)
ProxyFactory.createClass() ==> 
SecurityUtil.doPrivilegedGetProxyClass(ProxyFactory..)

One problem I have is the setAcess()/getDeclaredMethods() invocations in 
javax.enterprise.util.AnnotationLiteral, which is now part of geronimo jcdi 
api. Should we open a bug against geronimo?

> Add dopriv's to allow OWB to function with java 2 security enabled
> ------------------------------------------------------------------
>
>                 Key: OWB-312
>                 URL: https://issues.apache.org/jira/browse/OWB-312
>             Project: OpenWebBeans
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: M4
>            Reporter: Jacquelle Leggett
>            Assignee: YING WANG
>             Fix For: 1.0.0
>
>
> When using OWB with java 2 security enabled, my application requires the 
> following permissions:
>   permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
>   permission java.lang.RuntimePermission "accessDeclaredMembers";
>   permission java.lang.RuntimePermission "getClassLoader";
>   permission java.lang.RuntimePermission "getProtectionDomain"; 
> The associated errors do not appear to be strategic security exceptions; 
> therefore, dopriv blocks should be added to the appropriate sections of code. 
>  Adding dopriv blocks to AnnotationUtil and ClassUtil, will resolve most of 
> the issues based on the SecurityExceptions I saw.
> java.security.AccessControlException: Access denied 
> (java.lang.RuntimePermission accessDeclaredMembers)
>       at 
> java.security.AccessController.checkPermission(AccessController.java:108)
>       at java.lang.SecurityManager.checkPermission(SecurityManager.java:533)
>       at 
> com.ibm.ws.security.core.SecurityManager.checkPermission(SecurityManager.java:212)
>       at 
> java.lang.SecurityManager.checkMemberAccess(SecurityManager.java:1678)
>       at java.lang.Class.checkMemberAccess(Class.java:109)
>       at java.lang.Class.getDeclaredMethods(Class.java:668)
>       at 
> org.apache.webbeans.util.AnnotationUtil.hasAnnotationMember(AnnotationUtil.java:457)
>       at 
> org.apache.webbeans.container.InjectionResolver.findByQualifier(InjectionResolver.java:523)
>       at 
> org.apache.webbeans.container.InjectionResolver.implResolveByType(InjectionResolver.java:410)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to