我想知道使用 jaas 在数据库表上验证应用程序用户的最简单方法。
由于带有用户名/哈希密码的数据库表可能是最常见的解决方案,是否有针对此类身份验证的“提供的”LoginModule?
答案 0 :(得分:3)
Tomcat 6中的JDBCRealm支持是开箱即用的。这可能足以满足大多数需求。注意,Tomcat还提供DataSourceRealm以允许通过基于JNDI的JDBC数据源进行身份验证;这更适合需要专用连接池来访问身份验证数据源的应用程序。请注意,领域实现支持使用digested/hashed passwords;但默认情况下不是。这需要通过每个领域的摘要属性进行额外配置。
Glassfish还支持使用JDBC领域对主体进行身份验证。有关创建领域的详细信息,请参阅Glassfish Administration Guide。该指南可能会提供关于管理领域的允许值的可怜文档 - 您将在a blog post中提供这些文档。
如果您正在寻找管理领域中基础用户的方法,那么大多数/所有容器都没有相同的管理工具。你必须自己编写这些工具。
此外,如果您希望支持这些Realm实现不支持的摘要算法,或者让实现以不同的方式工作(例如向密码添加salt,或者根据策略锁定用户),那么您''我需要推出自己的实现。
现在,如果您希望在应用程序中使用这些,通常可以通过在应用程序的相应部署描述符中指定领域来完成。假设这是一个Web应用程序,您可以在web.xml file中指定所使用的领域(用于表单,基本和摘要式身份验证方案)。