我已经像下面这样设置了我的环境,但在登录后它说访问被拒绝,就像角色设置不正确一样。
这里有一些信息:
- 我使用 BASIC 身份验证,只要输入错误的用户名或密码,浏览器登录表单就会重新出现。当我输入正确的用户名并传递时,它就消失了,我收到了拒绝访问的消息
- 如果我配置
<role-name>*</role-name>
我没有得到 403,登录后我可以访问 protected 页面 - 控制台没有显示任何错误信息
web.xml
<security-role>
<role-name>USER</role-name>
</security-role>
<security-role>
<role-name>ADMIN</role-name>
</security-role>
<!--<security-role>
<role-name>*</role-name>
</security-role>-->
<security-constraint>
<display-name>IndexPage</display-name>
<web-resource-collection>
<web-resource-name>start</web-resource-name>
<url-pattern>/pages/protected/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<!--<role-name>*</role-name> -->
<role-name>USER</role-name>
<role-name>ADMIN</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
server.xml
<Engine defaultHost="localhost" name="Catalina">
<Realm className="org.apache.catalina.realm.JDBCRealm"
connectionURL="jdbc:mysql://localhost:3306/jsfdb?user=root"
driverName="com.mysql.jdbc.Driver"
roleNameCol="role_name"
userCredCol="password"
userNameCol="username1"
userRoleTable="user_role"
userTable="user"
/>
数据库
user
数据
user_role
数据
最佳答案
关于java - 未考虑登录/角色后的 JDBC Tomcat 身份验证 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56733295/