2016-12-26 41 views
1

我是新來的tomcat開發。我試過在tomcat服務器上配置基於表單的身份驗證。但是錯誤出現在日誌文件日誌/ catalina.out中。我不確定在conf/server.xml或application/WEB-INF/web.xml中是否有任何錯誤。
Tomcat的/日誌/ catalina.out中輸出:基於tomcat表單的身份驗證DataSourceRealm配置錯誤

警告[主要] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule] {服務器/服務/發動機/領域}設定屬性 '摘要'改爲'MD5'沒有找到匹配的屬性。
警告[main] org.apache.tomcat.util.digester.Digester.endElement找不到匹配'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"/> 

在應用/ 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> 

回答

1

這是最有可能是你有Tomcat8.5哪裏消化屬性已移除。您需要使用CredentialHandler子元素。 This answer has an example如何在同一個myapp.war文件中同時支持Tomcat7和Tomcat8服務器。

大部分關於org.apache.catalina.realm.DataSourceRealm的文檔都指向以前的配置。

相關問題