2017-01-03 2 views
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="&lt;&lt;ALL BINDINGS&gt;&gt;" actions="all"/> 

또는 특별히 :

<permission class="org.wildfly.naming.java.permission.JndiPermission" name="/AppCacheImpl" actions="bind"/> 

하지만 제이보스는 여전히 예외가 발생합니다. 내가 뭘 잘못하고 있는거야?

+0

업데이트 : JndiPermission은 제이보스 명명 모듈에 지정된 방식 때문에,이 같은 모듈 속성을 지정해야합니다 나는 제이보스 10.1 제이보스 - 겉 날개 코드로 디버깅했습니다. 문제는 WildFly가 JndiPermission 클래스에서 ClassNotFoundException을 throw한다는 것입니다. 클래스는 wildfly-naming 모듈 (org.jboss.as.naming)에 있지만 해당 jar (org.wildfly.naming.java.permission.JndiPermission)의 다른 모든 모듈 경로와 다른 모듈 경로를 가지고 있으므로 어쩌면 뭔가있을 수 있습니다. 특별 할거야? – pduncan

답변

0

이것은 클래스 로딩 오류입니다.

<permission 
    module="org.jboss.as.naming" 
    class="org.wildfly.naming.java.permission.JndiPermission" 
    name="-" 
    actions="all"/> 
관련 문제