我知道它$CATALINE_HOME/bin/digest.sh
用于生成可以使用的散列密码,tomcat_users.xml
但是如何实现与在项目中使用嵌入式 tomcat 相同的行为,因为它没有bin/digest.sh
?
更新:
我发现RealmBase.java
tomcat 的方法digest()
与 digest.sh 的方法等效,但是,自从 tomcat 9 以来,它已被弃用,我使用的是 tomcat 9。有人知道这种方法的新实现是什么吗?
我知道它$CATALINE_HOME/bin/digest.sh
用于生成可以使用的散列密码,tomcat_users.xml
但是如何实现与在项目中使用嵌入式 tomcat 相同的行为,因为它没有bin/digest.sh
?
更新:
我发现RealmBase.java
tomcat 的方法digest()
与 digest.sh 的方法等效,但是,自从 tomcat 9 以来,它已被弃用,我使用的是 tomcat 9。有人知道这种方法的新实现是什么吗?
处理散列密码的主要方法是CredentialHandler#mutate
,这也是digest.sh
. 它将提供的密码转换为其存储的形式。
CredentialHandler
您可以通过多种方式检索:
Tomcat
对象,使用tomcat.getEngine().getRealm().getCredentialHandler()
. 为此,Realm
如果它没有运行,您需要启动它,Globals.CREDENTIAL_HANDLER
("org.apache.catalina.CredentialHandler") servlet 上下文属性。digest.sh
用于生成密码哈希。如果您需要生成密码哈希,只需从 Tomcat 主页下载 Tomcat 存档并运行脚本即可。
嵌入式 Tomcat 没有此脚本。