[
https://issues.jboss.org/browse/WFLY-9801?page=com.atlassian.jira.plugin....
]
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@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)