0
기존 응용 프로그램을 Wildfly Security Manager와 함께 사용하려고합니다. 나는 내 응용 프로그램을 실행하고 나는 응용 프로그램 로그 파일에 예외에 대한 응답으로 다음과 같이 standalone.xml하는 데 필요한 구성을 추가 해요 시작하려면 :이 좋아, 노력Wildfly 보안 관리자가 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"/>
하지만 제이보스는 여전히 예외가 발생합니다. 내가 뭘 잘못하고 있는거야?
업데이트 : JndiPermission은 제이보스 명명 모듈에 지정된 방식 때문에,이 같은 모듈 속성을 지정해야합니다 나는 제이보스 10.1 제이보스 - 겉 날개 코드로 디버깅했습니다. 문제는 WildFly가 JndiPermission 클래스에서 ClassNotFoundException을 throw한다는 것입니다. 클래스는 wildfly-naming 모듈 (org.jboss.as.naming)에 있지만 해당 jar (org.wildfly.naming.java.permission.JndiPermission)의 다른 모든 모듈 경로와 다른 모듈 경로를 가지고 있으므로 어쩌면 뭔가있을 수 있습니다. 특별 할거야? – pduncan