|
|
1
85
在搜索了Web并尝试了许多不同的方法之后,下面是我对Java EE 6身份验证的建议: 设置安全域:
http://blog.gamatam.com/2009/11/jdbc-realm-setup-with-glassfish-v3.html 注意:本文讨论了数据库中的用户和组表。我有一个用户类,其UserType enum属性通过javax.persistence注释映射到数据库。我为用户和组配置了相同的表,使用userType列作为组列,效果很好。 使用表单身份验证:仍然遵循上面的博文,配置web.xml和sun-web.xml,但不要使用基本身份验证,而是使用表单(实际上,使用哪一个并不重要,但我最终使用了表单)。使用标准HTML,而不是JSF。 然后使用上面BalusC关于从数据库初始化用户信息的提示。他建议在托管bean中这样做,从faces上下文中获取校长。相反,我使用了一个有状态会话bean来存储每个用户的会话信息,因此我注入了会话上下文:
我还四处寻找注销的最佳方式。我发现最好的方法是使用Servlet:
虽然考虑到问题的日期,我的回答真的很晚,但我希望这能帮助其他从谷歌来到这里的人,就像我一样。
苏扎河畔 |
|
|
2
153
form based authentication
使用
deployment descriptors
和
您也可以在JSF中通过使用相同的预定义字段名来实现这一点
您可以在
对于剩余部分(在部署描述符和领域中定义用户、角色和约束),只需按照通常的方式遵循JavaEE6教程和servletcontainer文档。
更新
此视图范围为托管bean,它还记得最初请求的页面:
|
|
3
7
应该提到的是,这是一个将身份验证问题完全留给前端控制器(例如Apache Web服务器)的选项,并对HttpServletRequest.getRemoteUser()求值,后者是REMOTE_用户环境变量的JAVA表示形式。这也允许复杂的登录设计,如Shibboleth身份验证。通过web服务器过滤对servlet容器的请求对于生产环境来说是一种很好的设计,通常使用mod_jk来实现。 |
|
|
4
4
问题 HttpServletRequest.login does not set authentication state in session 已在3.0.1中修复。将glassfish更新至最新版本,即可完成。 更新非常简单:
|
|
|
user316114 · GSS JAAS无法读取密钥库/选项卡 9 年前 |
|
|
user208370 · 为每个http请求调用WildFly登录模块 9 年前 |
|
|
janor · Wildfly在web应用程序中注销后缓存角色 11 年前 |
|
|
Bart · Spring模板连接到OpenSSO/JAAS安全端点 12 年前 |