如果this是在Java EE 6中验证用户的最佳方法之一。JAAS是否真的需要认证?
在认证/用户登录中使用JAAS有什么好的理由吗?谈到包装:
javax.security.auth
JAAS应用程序到一个简单的web应用程序不是微不足道的,所以这就是为什么我问。这是一个example.
无论如何它可能需要授权。
如果this是在Java EE 6中验证用户的最佳方法之一。JAAS是否真的需要认证?
在认证/用户登录中使用JAAS有什么好的理由吗?谈到包装:
javax.security.auth
JAAS应用程序到一个简单的web应用程序不是微不足道的,所以这就是为什么我问。这是一个example.
无论如何它可能需要授权。
如果您打算依靠容器通过使用@RolesAllowed
注释来执行授权,那么答案是肯定的,您将需要JAAS。
至于它是否复杂,它实际上取决于您将使用的LoginModule
实现。容器确实带有LoginModule
开箱即用的实现,尤其是针对身份存储(如文件,LDAP服务器或数据库)进行身份验证。如果这就是你所需要的,那么你可以使用这些来代替自己的实现。
如果您确实想写一个像Antonio Goncalves所做的LoginModule
,您需要了解LoginModule
和JAAS的作用。他的模块在认证过程中使用内置于其应用中的CustomerService
。该模块简单地通过CDI BeanManager
查找CustomerService
bean,并将所有认证请求委托给findCustomer(username, password)
方法。如果找不到提供的凭证的客户,则会引发LoginException
。
PicketBox是开箱即用的Jboss LoginModule实现吗? – jacktrades
@jacktrades Picketbox在JBoss AS7中可用作模块(查看JBOSS_HOME/modules/org/picketbox)。如果您正在编写自定义安全模块,[this](https://community.jboss.org/wiki/JBossAS7SecurityCustomLoginModules)将有所帮助。但是,如果您在AS7中寻找标准模块,[this](https://community.jboss.org/wiki/JBossAS7SecurityDomainModel#Security_Domains)是一个很好的参考。 AS7中的标准登录模块由'org.picketbox' JBoss模块提供。 –
>'通过使用@RolesAllowed批注强制执行授权,那么答案是肯定的,您将需要JAAS。' 这并不完全正确。实际上,它并不是真的;)Java EE中没有任何东西需要使用JAAS。 '@ RolesAllowed'是一个常见的注释,目前只有EJB给出了含义。如何使用EJB进行身份验证或者留给容器,这绝对不必使用JAAS,或者从SOAP或Servlet传播认证,而标准Java EE中的认证可以使用JASPIC,而JASPIC也不需要使用JAAS。 –