首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当用户名和密码正确时,j_security_check会显示403页面

当用户名和密码正确时,j_security_check会显示403页面
EN

Stack Overflow用户
提问于 2011-12-02 14:13:20
回答 1查看 4.6K关注 0票数 1

我正在使用j_security_check实现基于表单的身份验证,现在我遇到了以下问题:

好的,下面是我的配置文件: web.xml:

代码语言:javascript
运行
复制
<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中

代码语言:javascript
运行
复制
 <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中

代码语言:javascript
运行
复制
 <ResourceLink type="javax.sql.DataSource" name="jdbc/DB" global="jdbc/DB"/>

所以我的问题是,当我输入正确的凭据时,我会得到403页面。如果我输入了错误的用户名和密码,我会被重定向到error.jsp,这意味着它会检查数据库,但是,我不知道问题出在哪里。

有没有人对通过DB进行身份验证有什么熟悉的问题?

此外,我不确定如何使用角色名来执行secrity-role标记,因为给定表只有用户名和密码。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-02 22:25:01

如果您没有授权角色,请使用

代码语言:javascript
运行
复制
<auth-constraint>
    <role-name>*</role-name> 
</auth-constraint>

和remove <security-role>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8352445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档