EJB 프로젝트에서 "javax.ejb.SessionContext"의 호출 명칭을 대체해야합니다. Jboss AS 6.0 Final을 애플리케이션 서버로 사용합니다.커스텀 프린시 펄은 Jboss AS의 EJB SessionContext에 전달되지 않습니다
UsernamePasswordLoginModule을 확장하고 사용자 지정 주체를 추가 한 사용자 지정 UserLoginModule을 정의했지만 사용자 지정 주체가 EJB SessionContext로 전파되지 않습니다.
이@Override
protected Group[] getRoleSets() throws LoginException {
Group[] groups = new Group[2];
groups[0] = new SimpleGroup("Roles");
groups[0].addMember(createRoleIdentity());
Group callerPrincipal = new SimpleGroup("CallerPrincipal");
callerPrincipal.addMember(createIdentity(this.getUsername()));
groups[1] = callerPrincipal;
subject.getPrincipals().add(callerPrincipal);
return groups;
}
@Override
protected Principal createIdentity(String username) throws LoginException {
return new MyCustomPrincipal(username);
}
}
내 사용자 정의 로그인 모듈이 잘 작동하지만, 내가 "javax.ejb.SessionContext"에서 얻을 호출자 주체가 여전히 SimplePrincipal입니다 : 여기
내 사용자 정의 로그인 모듈에서 일부 코드입니다. IT는 Jobss 버그가 있다고 밝혀졌다 : EJBContext.getCallerPrincipal()를 정의 주요 https://issues.jboss.org/browse/JBAS-8427과 관련된 항목에 반환하지 않습니다 : http://community.jboss.org/thread/44388에게.
Jboss가 작성한 기본 보안 주체를 바꾸는 것이 안전할까요? 그 부작용이 있습니까?
이 여전히 보스 7 솔루션에 –