在我的 Java EE 6 应用程序(Weblogic 12c、EJB 3.1、JSF 2)中,我需要知道在 EJB 中谁调用了该方法。
但是从 context.getCallerPrincipal().getName() 获得的调用者登录是不够的,因为登录在我的应用程序中不是唯一的。我需要从 JSF 层(用户组织 ID)传递附加参数,但我不想更改每个方法的签名。
在用户登录应用程序(或通常在 JSF 层)时,是否有任何方法可以设置自定义参数,稍后对 EJB 可见?
在我的 Java EE 6 应用程序(Weblogic 12c、EJB 3.1、JSF 2)中,我需要知道在 EJB 中谁调用了该方法。
但是从 context.getCallerPrincipal().getName() 获得的调用者登录是不够的,因为登录在我的应用程序中不是唯一的。我需要从 JSF 层(用户组织 ID)传递附加参数,但我不想更改每个方法的签名。
在用户登录应用程序(或通常在 JSF 层)时,是否有任何方法可以设置自定义参数,稍后对 EJB 可见?
有几个选项。
例如,如果用户使用“joe”登录,那么对于大多数内置模块,“joe”将是从 context.getCallerPrincipal().getName() 返回的内容。
使用 JASPIC,您可以将其设为任何字符串,例如“joe.theboss::131::9634”。