1

я следующее ограничение безопасности в моей web.xmlКак отправить сообщение или перенаправлять пользователя при доступе ограничение безопасности блока

<security-constraint> 
    <display-name>Admin Pages</display-name> 
    <web-resource-collection> 

     <web-resource-name>Protected Admin Area</web-resource-name> 
     <description/> 
     <url-pattern>/administrator/*</url-pattern> 
     <url-pattern>/faces/backend/*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>POST</http-method> 
     <http-method>HEAD</http-method> 
     <http-method>PUT</http-method> 
     <http-method>OPTIONS</http-method> 
     <http-method>TRACE</http-method> 
     <http-method>DELETE</http-method> 
    </web-resource-collection> 
    <auth-constraint> 
     <description/> 
     <role-name>administrator</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>NONE</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

It `ы отлично работает. Но я бы хотел перенаправить пользователей (уже зарегистрированный пользователь с ролью назначения, но не администратором роли). В этом случае. Когда пользователь пытается получить доступ к URL http://mywebap//administrator/ * он получает ответ от сервера

403 Forbiden. 

Я бы здесь не показывать этого, но перенаправлять пользователя на какой-то более дружественным видом. Возможно?

ответ

1

Просто настройте желаемую страницу как пользовательскую страницу ошибки HTTP 403 в web.xml.

<error-page> 
    <error-code>403</error-code> 
    <location>/WEB-INF/errorpages/403.xhtml</location> 
</error-page> 

Это предполагает, что вы охвачены *.xhtml, как URL pattern из FacesServlet. И он помещается в /WEB-INF в prevent direct access.

+0

Это работает. Большое спасибо! –

+0

Добро пожаловать. – BalusC