0
我试图让我现有的应用程序与Wildfly安全管理器一起工作。首先,我跑我的应用程序,并补充说,我需要响应standalone.xml像这样的应用程序日志文件例外配置:Wild Security安全管理器未处理JndiPermission
<subsystem xmlns="urn:jboss:domain:security-manager:1.0">
<deployment-permissions>
<minimum-set>
<permission class="java.util.PropertyPermission" name="*" actions="read,write"/>
<permission .../>
</minimum-set>
</deployment-permissions>
</subsystem>
这是工作好了,直到我得到以下例外:
2017-01-03 16:00:22,119 ERROR [com.myapp.ClusteredCache] (ServerService Thread Pool -- 68) Failed to bind to JNDI name: java.security.AccessControlException: WFSM000001: Permission check failed (permission "("org.wildfly.naming.java.permission.JndiPermission" "/AppCacheImpl" "bind")" in code source "(vfs:/content/myapp-wildfly.jar <no signer certificates>)" of "null")
at org.wildfly.security.manager.WildFlySecurityManager.checkPermission(WildFlySecurityManager.java:273) [wildfly-elytron-1.0.2.Final.jar:1.0.2.Final]
...
我添加权限是这样的:
<permission class="org.wildfly.naming.java.permission.JndiPermission" name="-" actions="all"/>
或:
<permission class="org.wildfly.naming.java.permission.JndiPermission" name="<<ALL BINDINGS>>" actions="all"/>
甚至专门:
<permission class="org.wildfly.naming.java.permission.JndiPermission" name="/AppCacheImpl" actions="bind"/>
但仍WildFly抛出异常。任何想法我做错了什么?
更新:我已经调试到WildFly 10.1和wildfly-鞘翅代码。我注意到问题是WildFly在JndiPermission类上抛出了ClassNotFoundException。 该类存在于wildfly命名模块(org.jboss.as.naming)中,但与该jar中的所有其他模块路径(org.wildfly.naming.java.permission.JndiPermission)不同,所以也许有一些东西特别在这里做? – pduncan