java - tomcat基于表单的身份验证DataSourceRealm配置错误

标签 java xml apache servlets

我是 tomcat 开发的新手。我已经尝试在 tomcat 服务器上配置基于表单的身份验证。但错误出现在日志文件logs/catalina.out中。我不确定conf/server.xml或application/WEB-INF/web.xml是否有错误。
tomcat/logs/catalina.out 输出:

WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Realm} Setting property 'digest' to 'MD5' did not find a matching property.
WARNING [main] org.apache.tomcat.util.digester.Digester.endElement No rules found matching 'Server/Service/Engine/Resource'.

在 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>

最佳答案

这很可能是您的 Tomcat8.5 中删除了摘要属性。您需要使用 CredentialHandler 子元素。 This answer has an example如何在同一个 myapp.war 文件中支持 Tomcat7 和 Tomcat8 服务器。

大多数有关 org.apache.catalina.realm.DataSourceRealm 的在线文档都指向以前的配置。

关于java - tomcat基于表单的身份验证DataSourceRealm配置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41325893/

相关文章:

java - FileDescriptor :error android. system.ErrnoException:打开失败:ENOENT(没有这样的文件或目录)

java - 自定义 JAXB 验证错误消息

ios - 应用程序加载器错误 : XML Parsing Error has occurred

apache - 我已成功使用 mod_jk 将 apache 连接到 tomcat,但未执行 jsp,而是将它们显示为纯文本文件

Java:动态加载同一个类的多个版本

java - JdbcOdbcPreparedStatement.setLong 抛出 java.sql.SQLException : Optional feature not implemented

java - 用于 Java 和/或 Scala 的多模式 XML 处理器

apache - .htaccess 未从 DocumentRoot 目录中正确读取

Django部署: Cutting Apache's Overhead

java - 如何向 Canvas 元素添加上下文菜单?