2

我对登录和身份验证概念完全陌生。我正在开发一个 Glassfish 网络应用程序,该应用程序应该向任何访问者呈现一般内容,并为使用用户名和密码登录的注册用户提供一些额外内容。

我一直在阅读有关安全性的 Java EE 教程,并且我认为基于表单或 HTTP 身份验证将满足我的需求(访问者在尝试浏览受保护的内容时被要求提供凭据)。

然而,我的第一个猜测是注册用户应该连同他们的散列和加盐密码一起存储在外部数据库中。Glassfish 中 Web 应用程序的安全性似乎依赖于直接在应用程序服务器上手动填充的领域(定义用户和组并将它们映射到应用程序中的角色)。

我是否误解了 Glassfish 的安全目的?或者领域可以是应用程序服务器之外的外部数据库吗?任何指向有关此主题的文档的链接都会对我有用。

先感谢您

4

2 回答 2

1

这实际上是可能的。在 Glassfish 中,转到 Configuration/Security/Realms,创建一个新领域并将类名设置为 com.sun.enterprise.security.auth.realm.jdbc.JDBCRealm。指明绑定到数据库的JDBC Resource,并指明存储用户名/密码的表和列。数据库还应包含用户必须属于被授予访问权限的组的表。也指出那些。

在应用程序中,像往常一样使用领域名称设置 web.xml 和 sun-web.xml。

于 2010-02-04T07:53:59.600 回答
0

这是一篇关于 glassfish 中 jdbc 领域的文章,其中包含您描述的场景:http: //java-cookbook.blogspot.com/2011/02/jdbc-security-realm-with-glassfish-and.html

于 2011-02-06T19:38:16.323 回答