从JSF managedbean检索对象加载项JAAS登录模块

从JSF managedbean检索对象加载项JAAS登录模块,jsf,glassfish,glassfish-4,jaas,Jsf,Glassfish,Glassfish 4,Jaas,我们的应用程序使用JSF2.2,并使用glassfish 4作为服务器。在对用户进行身份验证期间,我需要在登录模块中添加一些对象,以便在web应用程序中,托管bean可以检索该对象 在loginModule中,我执行了以下操作:如果不是这样,请告诉我正确的操作方法: _subject.getPublicCredentials().add(someObject); 但是如何在ManagedBean中检索它呢。任何帮助都将不胜感激。这是JSR-115规范JavaTM容器授权合同的一部分。请参阅第

我们的应用程序使用JSF2.2,并使用glassfish 4作为服务器。在对用户进行身份验证期间,我需要在登录模块中添加一些对象,以便在web应用程序中,托管bean可以检索该对象

在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]凭据中,不带参数。get[Public | Private]credentialClass.class生成内容的副本,过滤作为参数实例的类,仅用于检索保存的类

注意:未在JBoss上测试,但我认为它同样适用于JBoss文档

参考资料:


如何使用会话范围?