Better handling if suppressAccessChecks is not permitted (regression)
---------------------------------------------------------------------
Key: JRUBY-5206
URL: http://jira.codehaus.org/browse/JRUBY-5206
Project: JRuby
Issue Type: Improvement
Components: Java Integration
Affects Versions: JRuby 1.1.3
Reporter: Trejkaz
Assignee: Charles Oliver Nutter
Fix For: JRuby 1.4
I am writing a restrictive script runner and would like to deny scripts from
calling methods which they cannot conventionally access.
So I wrote a wrapper which does not grant the "suppressAccessChecks"
RuntimePermission, but this causes JRuby to bomb out completely:
{noformat}
java.security.AccessControlException: access denied
(java.lang.reflect.ReflectPermission suppressAccessChecks)
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at
java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at
java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:107)
at org.jruby.javasupport.JavaMethod.<init>(JavaMethod.java:90)
at org.jruby.javasupport.JavaMethod.create(JavaMethod.java:97)
at
org.jruby.javasupport.JavaClass$MethodCallback.createJavaMethods(JavaClass.java:296)
at
org.jruby.javasupport.JavaClass$InstanceMethodInvoker.execute(JavaClass.java:385)
at
org.jruby.internal.runtime.methods.SimpleCallbackMethod.call(SimpleCallbackMethod.java:67)
at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:224)
at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:201)
at
org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:123)
at
org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:333)
at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
at org.jruby.ast.WhileNode.interpret(WhileNode.java:124)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
at
org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall(DefaultMethod.java:171)
<cut>
{noformat}
I think it would be better if it could work in this situation, but provide
access to less methods.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email