[jboss-jira] [JBoss JIRA] (WFLY-9801) Wsprovide tool ends with java.security.AccessControlException

R Searls (JIRA) issues at jboss.org
Wed Feb 21 09:09:00 EST 2018


    [ https://issues.jboss.org/browse/WFLY-9801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13536048#comment-13536048 ] 

R Searls edited comment on WFLY-9801 at 2/21/18 9:08 AM:
---------------------------------------------------------

David L. wrote in email ...

OK it looks like it's the JDK itself which lacks security manager
permissions, which is interesting: we can't really control that
directly.

The CXF "Compiler" class uses
javax.tools.ToolProvider.getSystemJavaCompiler() to get an instance of
Compiler.  This instance comes from a URL class loader which is
constructed on the spot by the JDK to load classes from its tools.jar.
The class loader created by the JDK does not grant any static
permssions to the loaded classes, causing the tool to fail.

The workaround is to create a security policy which grants
AllPermission to "file:/usr/java/jdk1.8.0_72/lib/tools.jar".  I'm not
sure we can come up with a "proper" fix in the JDK before Java 9
(where the tools are included in the main runtime).

CXF could probably come up with an "improper" fix where the compiler
is located using ServiceLoader (which will work cleanly on Java 9 but
will require support from JBoss Modules in Java 8).

I think we'll have to live with the workaround for now otherwise.



> Wsprovide tool ends with java.security.AccessControlException
> -------------------------------------------------------------
>
>                 Key: WFLY-9801
>                 URL: https://issues.jboss.org/browse/WFLY-9801
>             Project: WildFly
>          Issue Type: Bug
>          Components: Scripts, Web Services
>            Reporter: Marek Kopecký
>            Assignee: R Searls
>            Priority: Blocker
>             Fix For: 12.0.0.CR1
>
>         Attachments: Echo1-security.policy, Echo1.class, Echo1Impl.class
>
>
> *Description of the issue:*
> wsprovide tool ends with java.security.AccessControlException
> I see this issue on WF master (2018_02_12). This is regression against WF master from 2018_02_05, so priority of this jira is blocker.
> *How reproducible:*
> Always
> *Steps to Reproduce:*
> # Use these (class files are attached):
> {code:java}
> @WebService(endpointInterface = "org.jboss.as.testsuite.integration.scripts.test.tools.Echo1", targetNamespace = "org.jboss.as.testsuite.integration.scripts.test.tools", serviceName = "Echo1Service")
> public class Echo1Impl implements Echo1 {
>     @Override
>     public String echoPlus1(String s) {
>         return s + "1";
>     }
> }
> {code}
> {code:java}
> @WebService
> @SOAPBinding
> public interface Echo1 {
>     String echoPlus1(String s);
> }
> {code}
> # cd $\{JBOSS_HOME\}/bin
> # mkdir out
> # ./wsprovide.sh -k -c $\{CLASS_DIR\} -o out  org.jboss.as.testsuite.integration.scripts.test.tools.Echo1Impl
> *Actual results:*
> {noformat}
> [mkopecky at localhost bin]$ ./wsprovide.sh -k -c ~/erase2 -o out  org.jboss.as.testsuite.integration.scripts.test.tools.Echo1Impl
> Could not find log4j.properties or log4j.xml configuration, logging to console.
> java2ws -s /home/mkopecky/playground/wf/wfly.13/wfly.13/bin/out -classdir /home/mkopecky/playground/wf/wfly.13/wfly.13/bin/out -d /home/mkopecky/playground/wf/wfly.13/wfly.13/bin/out -verbose -cp /home/mkopecky/erase2/: -wrapperbean -createxsdimports org.jboss.as.testsuite.integration.scripts.test.tools.Echo1Impl
> java2ws - Apache CXF 3.2.2
> java.security.AccessControlException: access denied ("java.io.FilePermission" "/home/mkopecky/playground/wf/wfly.13/wfly.13/bin/out/org/jboss/as/testsuite/integration/scripts/test/tools/jaxws/EchoPlus1Response.java" "read")
> 	at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
> 	at java.security.AccessController.checkPermission(AccessController.java:884)
> 	at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
> 	at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
> 	at java.io.File.isDirectory(File.java:844)
> 	at com.sun.tools.javac.file.RegularFileObject.<init>(RegularFileObject.java:69)
> 	at com.sun.tools.javac.file.RegularFileObject.<init>(RegularFileObject.java:64)
> 	at com.sun.tools.javac.file.JavacFileManager.getJavaFileObjectsFromFiles(JavacFileManager.java:785)
> 	at com.sun.tools.javac.file.JavacFileManager.getJavaFileObjectsFromStrings(JavacFileManager.java:185)
> 	at org.apache.cxf.common.util.Compiler.useJava6Compiler(Compiler.java:202)
> 	at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:141)
> 	at org.apache.cxf.tools.java2wsdl.generator.wsdl11.BeanGenerator.generateAndCompile(BeanGenerator.java:91)
> 	at org.apache.cxf.tools.java2wsdl.generator.wsdl11.BeanGenerator.generate(BeanGenerator.java:58)
> 	at org.apache.cxf.tools.java2wsdl.generator.wsdl11.BeanGenerator.generate(BeanGenerator.java:35)
> 	at org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.generate(JavaToWSDLProcessor.java:156)
> 	at org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.process(JavaToWSDLProcessor.java:118)
> 	at org.apache.cxf.tools.java2ws.JavaToWSContainer.processWSDL(JavaToWSContainer.java:110)
> 	at org.apache.cxf.tools.java2ws.JavaToWSContainer.execute(JavaToWSContainer.java:75)
> 	at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:105)
> 	at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:45)
> 	at org.apache.cxf.tools.java2ws.JavaToWS.run(JavaToWS.java:83)
> 	at org.jboss.wsf.stack.cxf.tools.CXFProviderImpl.provide(CXFProviderImpl.java:200)
> 	at org.jboss.wsf.stack.cxf.tools.CXFProviderImpl.provide(CXFProviderImpl.java:109)
> 	at org.jboss.ws.tools.cmd.WSProvide.generate(WSProvide.java:223)
> 	at org.jboss.ws.tools.cmd.WSProvide.main(WSProvide.java:89)
> 	at org.jboss.modules.Module.runMainMethod(Module.java:348)
> 	at org.jboss.modules.Module.run(Module.java:328)
> 	at org.jboss.modules.Main.main(Main.java:557)
> {noformat}
> *Expected results:*
> No errors



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)



More information about the jboss-jira mailing list