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