2013-03-22 2 views
2

Java EE 6 애플리케이션 (Weblogic 12c, EJB 3.1, JSF 2)에서 메소드를 호출 한 EJB를 알아야합니다.JSF에서 EJB로 추가 매개 변수 전달하기

하지만 로그인이 내 앱에서 고유하지 않으므로 context.getCallerPrincipal(). getName()에서 얻은 발신자의 로그인으로는 충분하지 않습니다. JSF 레이어 (사용자 조직 ID)에서 추가 매개 변수를 전달해야하지만 각 메소드의 서명을 변경하지 않으려합니다.

사용자가 응용 프로그램 (또는 일반적으로 JSF 계층)에 로그인하는 동안 사용자 정의 매개 변수를 설정할 수 있습니까? 나중에 EJB에 표시됩니까?

답변

2

두 가지 옵션이 있습니다.

  1. JASPIC을 사용하여 사용자/발신자 프린시 펄 이름을 로그인 할 때 사용한 사용자 이외의 다른 이름으로 설정하십시오. 사용자가 다음 대부분의 구운 모듈과 "조", "조"로 로그인 할 경우

는 예를 들어, context.getCallerPrincipal에서 무엇을 반환 것됩니다(). getName().

JASPIC에서는 "joe.theboss :: 131 :: 9634"와 같은 임의의 문자열을 사용할 수 있습니다.

  1. 예를 들어 요청 범위에서 뭔가를 기억하기 위해 CDI를 사용하십시오. EJB Bean은 요청 범위가 지정된 CDI Bean으로 주입 될 수 있습니다 (JSF 버전이 아닌 CDI @RequestScoped를주의하여 사용하십시오).
관련 문제