我对登录和身份验证概念完全陌生。我正在开发一个Glassfish Web应用程序,它应该向任何访问者提供一般内容,以及使用用户名和密码登录的注册用户的一些额外内容。
我一直在阅读有关安全性的Java EE教程,我认为基于表单或HTTP身份验证可以满足我的需求(在尝试浏览安全内容时会要求访问者提供凭据)。
但是,我的第一个猜测是注册用户应该与他们的哈希和盐渍密码一起存储在外部数据库中。 Glassfish中Web应用程序的安全性似乎依赖于直接在应用程序服务器上手动填充的域(定义用户和组并将它们映射到应用程序中的角色)。
我误解了Glassfish的安全性是什么意思吗?或者领域可以是应用程序服务器外部的外部数据库吗?有关此主题的文档的任何链接对我都有用。
提前谢谢
挞
答案 0 :(得分:1)
实际上是可能的。 在Glassfish中,转到Configuration / Security / Realms,创建一个新领域并将类名设置为com.sun.enterprise.security.auth.realm.jdbc.JDBCRealm。 指示绑定到数据库的JDBC资源,并指示存储用户名/密码的表和列。数据库还应包含用户必须被授予访问权限的组的表。也请说明这些。
在应用程序中,像往常一样使用域名设置web.xml和sun-web.xml。
答案 1 :(得分:0)
这是一篇关于glassfish的jdbc领域的文章,其中描述了你的场景:http://java-cookbook.blogspot.com/2011/02/jdbc-security-realm-with-glassfish-and.html