在 tomcat 中是不是存在对接受盐的 JDBCRealm 的支持?

Posted

技术标签:

【中文标题】在 tomcat 中是不是存在对接受盐的 JDBCRealm 的支持?【英文标题】:Is there existing support in tomcat for a JDBCRealm that takes in a salt?在 tomcat 中是否存在对接受盐的 JDBCRealm 的支持? 【发布时间】:2011-09-10 20:52:36 【问题描述】:

我们目前使用的是 tomcat 5.5,并希望在我们的 JDBCRealm 身份验证中添加盐。我想知道是否有任何现有的类,或者我们是否需要扩展 JDBCRealm 并编写我们自己的身份验证类?

我们的 server.xml 中有以下内容

<Realm className="org.apache.catalina.realm.JDBCRealm" ...more stuff… />

但是这个类看起来不像是盐。

【问题讨论】:

【参考方案1】:
    编写您自己的 JDBCRealmWithSalt 类来扩展 JDBCRealm 类 覆盖digest() 方法(在此处添加盐) 将JDBCRealmWithSalt 放入catalina.jar:org/apache/catalina/realm &lt;Realm className="org.apache.catalina.realm.JDBCRealmWithSalt"...&gt;

【讨论】:

【参考方案2】:

Tomcat 5.5 API 中没有内置类,因此您必须使用自定义类。

一个例子可以在http://eneuwirt.de/2011/05/01/saltawarejdbcrealm/找到

【讨论】:

Tomcat 7 可能有一些开箱即用的东西,如 ***.com/questions/8053552/… 遗憾的是,eneuwirt.de 现在已经消失了。 但是代码lives on.【参考方案3】:

从 Tomcat 8 开始,您可以指定任何开箱即用的 Realm:

所需的算法 要使用的编码 盐 迭代次数 密钥长度

您可以在CATALINA_HOME/bin/digest.[bat|sh] 中提供这些信息

欲了解更多信息:https://tomcat.apache.org/tomcat-8.0-doc/realm-howto.html

【讨论】:

以上是关于在 tomcat 中是不是存在对接受盐的 JDBCRealm 的支持?的主要内容,如果未能解决你的问题,请参考以下文章

用于对项目中密码生成MD5摘要和加盐的工具类

数据库连接池的几个参数-以tomcat-jdbc举例

如何在 Python 中使用 scrypt 生成密码和盐的哈希值

C# 保持哈希盐的安全,即使是来自开发人员

如何让 Tomcat 接受 URL 中未转义的括号?

JDBC 大容量复制中可能存在内存泄漏