2013-07-14 2 views
0

У вас проблема с JBoss AS7/EAP6. В MDB, когда я просматриваю SSB и вызываю его метод, вызов всегда анонимный, т. Е. sessionContext.getCallerPrincipal() возвращает Принципал (анонимный). Всегда ... В 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> 

My Security Domain:

<security-domain name="mySecurityDomain" cache-type="default"> 
    <authentication> 
     <login-module code="com.qu.vad.CustomUsernamePasswordLoginModule" flag="required"> 
     </login-module> 
    </authentication> 
</security-domain> 

ответ

0

Решена проблема, делая JAAS логин в MDB