我们的应用程序使用JSF 2.2并使用glassfish 4作为服务器。我需要在认证用户期间在登录模块中添加一些对象,因此在Web应用程序中,托管bean可以检索该对象。从JSF managedbean中检索JAAS登录模块中的对象添加
在LoginModule的我做了以下(如果不是这样,请告诉我,做正确的方式):
_subject.getPublicCredentials().add(someObject);
但我怎么能在ManagedBean检索。任何帮助都感激不尽。
我们的应用程序使用JSF 2.2并使用glassfish 4作为服务器。我需要在认证用户期间在登录模块中添加一些对象,因此在Web应用程序中,托管bean可以检索该对象。从JSF managedbean中检索JAAS登录模块中的对象添加
在LoginModule的我做了以下(如果不是这样,请告诉我,做正确的方式):
_subject.getPublicCredentials().add(someObject);
但我怎么能在ManagedBean检索。任何帮助都感激不尽。
这是容器的JSR-115规范JavaTM授权合同的一部分。见4.6.1.1集装箱主题策略上下文处理程序:
4.6.1.1集装箱主题策略上下文处理程序
所有EJB和Servlet容器必须注册一个PolicyContextHandler其 getContext方法返回的javax .security.auth.Subject对象的调用时使用 键“javax.security.auth.Subject.container”。
在你的应用程序,您可以通过以下命令检索对象:
import javax.security.jacc.PolicyContext;
Subject subject = (Subject) PolicyContext.getContext("javax.security.auth.Subject.container");
注意:类应get[Private|Public]Credentials()
添加(无参数)。 get[Public|Private]Credentials(Class<T>.class)
生成内容的副本,“过滤”作为参数实例的类,仅用于检索已保存的类。
注意:未在JBoss上测试过,但我认为它基于JBoss Doc以同样的方式应用。
参考:
使用会话范围的怎么样? – 2014-12-04 04:20:17