2009-11-30 4 views
0

인증되지 않은 소스 (대기열에 연결된 메시지 구동 Bean)에서 보안 EJB에 대한 메소드를 호출하려고합니다. MDB에는 @EJB를 통해 EJB가 주입되었지만 대상 EJB에는 @SecurityDomain ("stuff") 및 @RequireRole ("user")이 있고 실행시 거대한 스택 추적을 생성합니다.Jboss5, @RunAs를 통해 보안 EJB에 대한 인증되지 않은 호출

 
17:14:03,275 ERROR [STDERR] java.lang.NullPointerException 
17:14:03,276 ERROR [STDERR] at org.jboss.ejb3.security.helpers.EJBContextHelper.getCallerPrincipal(EJBContextHelper.java:99) 
17:14:03,276 ERROR [STDERR] at org.jboss.ejb3.EJBContextImpl.getCallerPrincipal(EJBContextImpl.java:136) 

@SecurityDomain ("stuff") @RunAs ("sysuser") 주석이 달린 임시 EJB를 통해 역할을 제공함으로써이 문제를 해결하기 위해 노력한이 임시 bean에는 원래 대상 EJB가 주입되었습니다. 나의 이해는 대상 EJB가 "sysuser"역할의 중간 빈에서 호출 된 메소드를 가질 것입니다. 그러나 여전히 동일한 스택 트레이스가 발생하므로 데이터베이스 롤백이 발생합니다.

이러한 스택 추적이없는 일부 변형에서 Path MDB -> SecureEJB가 가능합니까? 성공적인 접근을 위해 올바른 접근 방식을 사용하고 있습니까? 아니면 믹스에 추가해야 할 부분이 있습니까?

건배,

답변