【发布时间】:2011-07-21 15:43:26
【问题描述】:
我想在 Java EE 6 应用程序中保护我的 JSF 页面。
我想在数据库中存储用户和角色,并让特权用户通过网络工具管理它们。特权用户会将用户添加到角色中,并将某些页面设置为需要某些角色才能访问。
在我看来,容器管理的安全性不允许我这样做。 JAAS 会是前进的方向吗?
任何建议和示例链接将不胜感激。
【问题讨论】:
标签: java security jakarta-ee containers jaas
我想在 Java EE 6 应用程序中保护我的 JSF 页面。
我想在数据库中存储用户和角色,并让特权用户通过网络工具管理它们。特权用户会将用户添加到角色中,并将某些页面设置为需要某些角色才能访问。
在我看来,容器管理的安全性不允许我这样做。 JAAS 会是前进的方向吗?
任何建议和示例链接将不胜感激。
【问题讨论】:
标签: java security jakarta-ee containers jaas
简短的回答是肯定的。 JAAS 将允许您使用 LoginModule 管理针对数据库的安全性(许多容器实现 JBoss 提供这些开箱即用的预装),您可以查看这篇文章 (http://weblogs.java.net/blog/2006/03/07/repost-using-jaas-jsf) 或这本书 (http://www.java.net/external?url=http://purl.oclc.org/NET/jsfbook/) 了解更多详情如何使用 JAAS 和 JSF 验证用户并确定授权参数。
对于您的第二个要求,我看不出您可以创建一个单独的工具来访问这些表以修改凭据信息的任何理由。虽然这似乎是一个已经通过使用 LDAP 提供程序和许多免费和开源 Web 界面中的任何一个来解决的问题。
由于关注点的明确分离,另一个漂亮的功能是您以后可以轻松地迁移到 LDAP 或第三方服务。
【讨论】:
我建议你看看Spring Security。
Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。
这是一篇解释使用Spring Security with JSF的文章。
【讨论】: