jaas,在数据库表上验证应用程序用户
我想知道使用 jaas 对数据库表上的应用程序用户进行身份验证的最简单方法。
由于具有用户名/散列密码的数据库表可能是最常见的解决方案,因此是否有“提供”的 LoginModule 用于此类身份验证?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想知道使用 jaas 对数据库表上的应用程序用户进行身份验证的最简单方法。
由于具有用户名/散列密码的数据库表可能是最常见的解决方案,因此是否有“提供”的 LoginModule 用于此类身份验证?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
Tomcat 6 中的 JDBCRealm 支持来自-盒子。这可能足以满足大多数需求。请注意,Tomcat 还提供了 DataSourceRealm 以允许通过基于 JNDI 的 JDBC 数据源进行身份验证;这更适合需要专用连接池来访问身份验证数据源的应用程序。请注意,领域实现支持使用 摘要/哈希密码;但不是默认情况下。这需要通过每个领域的digest属性进行额外配置。
Glassfish 还支持使用 JDBC 领域对主体进行身份验证。有关创建领域的详细信息,请参阅 Glassfish管理指南。该指南可能会提供有关管理领域允许值的可怜文档 - 您可以在 博客文章。
如果您正在寻找管理领域中底层用户的方法,那么大多数/所有容器都没有提供相同的管理工具。您必须自己编写这些工具。
另外,如果您希望支持这些 Realm 实现不支持的摘要算法,或者让实现以不同的方式工作(例如向密码添加盐,或根据策略锁定用户),那么您需要推出您自己的实施。
现在,如果您希望在应用程序中使用这些,通常可以通过在应用程序的适当部署描述符中指定领域来完成。假设这是一个 Web 应用程序,您可以在 web.xml 文件。
The JDBCRealm support in Tomcat 6, comes out-of-the-box. This is probably sufficient for most needs. Note, that Tomcat also provides the DataSourceRealm to allow for authentication via a JNDI based JDBC datasource; this is better suited for applications that need a dedicated connection pool to access the authentication data source. Note that the realm implementations support the use of digested/hashed passwords; but not by default. This would require additional configuration via the digest attribute of each realm.
Glassfish also supports authentication of principals using a JDBC realm. Details for creating the realm can be found in the Glassfish Administration Guide. The guide might provide pitiful documentation on the allowed values for managing the realm - you'll these in a blog post.
If you are looking for ways to manage the underlying users in the realms, then most/all containers do not come with management tools for the same. You would have to write these tools on your own.
Also, if you wish to support digest algorithms not supported by these Realm implementation, or have the implementations work in a different manner (like adding a salt to the password, or locking out users based on a policy), then you'll need to roll out your own implementations.
Now, if you wish to use these in your application, this is usually done by specifying the realms in the appropriate deployment descriptor of your application. Assuming this is a web application, you can specify the realm used (for form, basic and digest authentication schemes) in the web.xml file.