【问题标题】:Tomcat 9 DIGEST with JDBCRealm - accepts only digests, not passwords带有 JDBCRealm 的 Tomcat 9 DIGEST - 只接受摘要,不接受密码
【发布时间】:2016-08-17 00:50:20
【问题描述】:

新安装的 tomcat 9 - 并将应用程序从 tomcat 8 迁移到 tomcat 9。

要验证我的配置是使用 JDBCRealm 和 mysql 数据库。下面的配置在 tomcat 8 上运行得很好,但在 tomcat 9 上只直接接受密码摘要而不是直接接受“人类”密码(摘要存储在表 tomcat_users 中)而不是通常的密码。因此,当在 FORM 登录页面中提交人类可读的密码时,似乎没有执行摘要算法 MD5。

server.xml里面的配置是

<Realm className="org.apache.catalina.realm.JDBCRealm" connectionName=“..." connectionPassword=“..." connectionURL="jdbc:mysql://127.0.0.1:3306/TOMSCHEMA" digest="MD5" driverName="org.gjt.mm.mysql.Driver" roleNameCol="role_name" userCredCol="password" userNameCol="user_name" userRoleTable="tomcat_users_roles" userTable="tomcat_users"/>

身份验证方法对于一个应用程序是 FORM,对于另一个应用程序内的相应 API 是 DIGEST。两个应用程序在交叉上下文中看到对方。应用程序的 web.xml 包含:

<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>NAME</realm-name>
    <form-login-config>
        <form-login-page>/WEB-INF/security/protected/login.jsp</form-login-page>
        <form-error-page>/WEB-INF/security/protected/error.jsp</form-error-page>
    </form-login-config>
</login-config>

这里可能有什么问题?这一切都很“标准”......为了再次使用 FORM 身份验证页面使用 DIGEST 输入人工密码,我做了什么 shell,就像我在 tomcat 8 中所做的那样?

非常感谢您

问候

【问题讨论】:

    标签: tomcat digest-authentication jdbcrealm


    【解决方案1】:

    现在您需要在 server.xml 中添加额外的行以符合旧的消化方法:

         <Realm className="org.apache.catalina.realm.JDBCRealm"
            driverName="org.apache.derby.jdbc.EmbeddedDriver"
            connectionURL="jdbc:derby:/tomcat/db/zzz;create=false"
            connectionName="zzz"
            connectionPassword="zzz"
            userTable="login"
            userNameCol="login"
            userCredCol="passwd"
            userRoleTable="roles"
            roleNameCol="role"
          >
            <CredentialHandler className="org.apache.catalina.realm.MessageDigestCredentialHandler"
              algorithm="MD5"
              iterations="1"
              saltlenght="0"
            />
          </Realm>

    【讨论】:

    • 感谢您的回答。有趣的是,我在 Tomcat 文档中没有找到这个。
    猜你喜欢
    • 2012-02-20
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2018-02-20
    • 2019-08-02
    • 1970-01-01
    • 2023-03-28
    • 2011-09-10
    相关资源
    最近更新 更多