Я настроил свою среду следующим образом, но после входа в систему появляется сообщение, что доступ запрещен, например, если роль настроена неправильно.
Вот некоторые сведения:
- Я использую BASIC auth, и, пока я ввожу неверное имя пользователя или пароль, снова появляется форма входа в браузер. Когда я набираю правильное имя пользователя и передаю, оно исчезает, и я получаю сообщение об отказе в доступе
- Если я настрою
<role-name>*</role-name>
Я не получу 403 и после входа в систему я могу получить доступ к защищенной странице
- Консоль не показывает сообщение об ошибке
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
данные