2013-07-14 4 views
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> 

답변

0

는 MDB

에서 JAAS 로그인을 수행하여 문제를 해결