从JSF managedbean检索JAAS登录模块中的对象添加

时间:2014-12-03 11:53:10

标签: jsf glassfish glassfish-4 jaas

我们的应用程序使用JSF 2.2并使用glassfish 4作为服务器。我需要在身份验证用户期间在登录模块中添加一些对象,因此在Web应用程序中,托管bean可以检索该对象。

在loginModule中,我做了以下操作(如果不是这样,请告诉我正确的方法):

_subject.getPublicCredentials().add(someObject); 

但是如何在ManagedBean中检索它。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是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)生成内容的副本,&#34;过滤&#34;作为参数实例的类,仅用于检索已保存的类。

注意:未在JBoss上测试,但我认为它适用于基于JBoss Doc的相同方式。


<强>参考

相关问题