Если вы хотите, чтобы никто не сможет получить доступ к этим страницам напрямую, просто поместите их в папку /WEB-INF
.
Таким образом, страницы не являются общедоступными, а только сервлетом, который выполняет перемотку вперед. Когда конечный пользователь пытается получить к нему доступ напрямую, все, что он получит, это ошибка HTTP 404.
Альтернативой является создание без роли <security-constraint>
.
<security-constraint>
<display-name>Restrict direct access to certain folders</display-name>
<web-resource-collection>
<web-resource-name>Restricted folders</web-resource-name>
<url-pattern>/Admin/*</url-pattern>
<url-pattern>/Author/*</url-pattern>
<url-pattern>/Readonly/*</url-pattern>
</web-resource-collection>
<auth-constraint />
</security-constraint>
Когда пользователь пытается получить к ним доступ, все, что он получит, это ошибка HTTP 403.
В любом случае, невозможно перенаправить enduser на index.jsp
таким образом. Только Filter
может это сделать. Вы могли настроить index.jsp
как ошибка расположения страницы для 404 или 403
<error-page>
<error-code>404</error-code>
<location>/index.jsp</location>
</error-page>
Но это будет охватывать все 404 (или 403-х), не уверен, если это то, что вы хотите.
Или другими словами, я хочу разрешить доступ «index.jsp» только независимо от роли или авторизации. –