Fab*_*cci 1 tomcat digest-authentication jdbcrealm
新安装的 tomcat 9 - 并将应用程序从 tomcat 8 迁移到 tomcat 9。
验证我的配置是使用带有 mysql 数据库的 JDBCRealm。下面的配置在 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"/>
Run Code Online (Sandbox Code Playgroud)
一个应用程序的认证方法是 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>
Run Code Online (Sandbox Code Playgroud)
这里可能有什么问题?这一切都非常“标准”......我做了什么外壳才能再次使用 FORM 身份验证页面使用 DIGEST 输入人工密码,就像我在 tomcat 8 中一样?
非常感谢您提前
问候
小智 5
现在您需要在 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>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1623 次 |
| 最近记录: |