1
我實現與j_security_check和基於FORM的認證 我堅持現在以下問題:j_security_check給403頁時的用戶名和密碼是否正確
確定這裏是我的配置文件: web.xml中:
<security-constraint>
<display-name>Efood Security</display-name>
<web-resource-collection>
<web-resource-name>Secured Area</web-resource-name>
<url-pattern>/checkout.jspx</url-pattern>
<url-pattern>/checkout</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>friend</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Secured eFood Area</realm-name>
<form-login-config>
<form-login-page>/login.jspx</form-login-page>
<form-error-page>/error.jspx</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>10001</role-name>
</security-role>
<error-page>
<error-code>403</error-code>
<location>/403.jspx</location>
</error-page>
在server.xml中
<GlobalNamingResources>
....
<Resource driverClassName="org.apache.derby.jdbc.ClientDriver"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" name="jdbc/CSE"
password="secret" type="javax.sql.DataSource"
url = "jdbc:derby://hostname:port/DB" username="student" />
</GlobalNamingResources>
....
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className = "org.apache.catalina.realm.DataSourceRealm"
driverName="org.apache.derby.jdbc.ClientDriver"
debug="99"
dataSourceName = "jdbc/DB" userTable = "users"
userNameCol = "login" userCredCol="password"
userRoleTable = "users" roleNameCol = "login" />
</Realm>
在context.xml中
<ResourceLink type="javax.sql.DataSource" name="jdbc/DB" global="jdbc/DB"/>
所以我的問題是,當我輸入正確的憑證時,我得到403頁。 如果我輸入了錯誤的用戶名和密碼,我將被重定向到error.jsp, ,這意味着它會檢查數據庫,但是,我不知道問題出在哪裏。
任何人都有通過數據庫認證的任何熟悉的問題?
此外,我不確定如何使用角色名稱來執行secrity角色標記,因爲給定的表只有用戶名和密碼。
在此先感謝!
已經想通了!但謝謝你:) – epema