1

我知道它$CATALINE_HOME/bin/digest.sh用于生成可以使用的散列密码,tomcat_users.xml但是如何实现与在项目中使用嵌入式 tomcat 相同的行为,因为它没有bin/digest.sh

更新:

我发现RealmBase.javatomcat 的方法digest()与 digest.sh 的方法等效,但是,自从 tomcat 9 以来,它已被弃用,我使用的是 tomcat 9。有人知道这种方法的新实现是什么吗?

4

2 回答 2

1

处理散列密码的主要方法是CredentialHandler#mutate,这也是digest.sh. 它将提供的密码转换为其存储的形式。

CredentialHandler您可以通过多种方式检索:

  • Tomcat对象,使用tomcat.getEngine().getRealm().getCredentialHandler(). 为此,Realm如果它没有运行,您需要启动它,
  • 从 servlet,通过检索Globals.CREDENTIAL_HANDLER("org.apache.catalina.CredentialHandler") servlet 上下文属性。
于 2021-10-21T05:45:00.330 回答
0

digest.sh用于生成密码哈希。如果您需要生成密码哈希,只需从 Tomcat 主页下载 Tomcat 存档并运行脚本即可。

嵌入式 Tomcat 没有此脚本。

于 2021-10-20T11:42:32.340 回答