我是tomcat开发的新手。我已经尝试在tomcat服务器上配置基于表单的身份验证。但是错误出现在日志文件logs / catalina.out中。我不确定conf / server.xml或application / WEB-INF / web.xml中是否有任何错误 tomcat / logs / catalina.out输出:
警告[main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule] {Server / Service / Engine / Realm}设置属性 'digest'到'MD5'找不到匹配的属性 警告[主要] org.apache.tomcat.util.digester.Digester.endElement未找到规则 匹配'服务器/服务/引擎/资源'。
在tomcat / conf / server.xml
中<Realm className="org.apache.catalina.realm.DataSourceRealm"
localDataSource="true"
digest="MD5"
dataSourceName="jdbc/test"
userTable="users"
userNameCol="user_name"
userCredCol="user_pass"
userRoleTable="user_roles"
roleNameCol="role_name"/>
<Resource name="jdbc/test"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
username="he"
password="***"
maxActive="8"
maxIdle="4"
maxWait="10000"
auth="Container"/>
在application / WEB-INF / web.xml
中<security-constraint>
<web-resource-collection>
<web-resource-name>UpdateRe</web-resource-name>
<url-pattern>/images/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Admin</role-name>
<role-name>Member</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>Admin</role-name>
<role-name>Member</role-name>
<role-name>Guest</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.html</form-login-page>
<form-error-page>/loginError.html</form-error-page>
</form-login-config>
</login-config>
答案 0 :(得分:1)
这很可能是Tomcat8.5中删除了摘要属性。您需要使用CredentialHandler子元素。 This answer has an example如何在同一个myapp.war文件中同时支持Tomcat7和Tomcat8服务器。
大多数关于org.apache.catalina.realm.DataSourceRealm
的在线文档都指向以前的配置。