0
JBoss AS7/EAP6에 문제가 있습니다. MDB에서 SSB를 찾아 호출하는 경우 호출은 항상 익명입니다. 즉, sessionContext.getCallerPrincipal()
은 Principal (익명)을 반환합니다. 항상 ... AS5에서는 모든 것이 잘되었습니다.MDB에서 SSB 로의 호출은 JBoss AS7/EAP6에서 항상 익명입니다.
인증 된 사용자와 통화하려면 어떻게해야합니까?
내 MDB :
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/piQueue"),
@ActivationConfigProperty(propertyName = "dLQMaxResent", propertyValue = "3")
})
@SecurityDomain("mySecurityDomain")
public class PIMessageBean implements MessageListener {
...
**//subject always anonymous...**
Subject subject = (Subject) PolicyContext.getContext("javax.security.auth.Subject.container");
PIManager pim = lookupPIManager();
pim.getPIs(); **//call is anonymous**
...
}
내 큐 설정 :
<subsystem xmlns="urn:jboss:domain:messaging:1.2">
<hornetq-server>
...
<jms-destinations>
<jms-queue name="piQueue">
<entry name="queue/piQueue"/>
<entry name="java:jboss/exported/jms/queue/piQueue"/>
</jms-queue>
</jms-destinations>
<security-domain>mySecurityDomain</security-domain>
</hornetq-server>
</subsystem>
내 보안 도메인 :
<security-domain name="mySecurityDomain" cache-type="default">
<authentication>
<login-module code="com.qu.vad.CustomUsernamePasswordLoginModule" flag="required">
</login-module>
</authentication>
</security-domain>