2013-06-24 3 views
5

Я включил поддержку Rest на моем приложении Spring MVC с установкой AuthenticationEntryPoint на моей-безопасности context.xml вSpring Security Authentication Entry Point

<http auto-config="false" use-expressions="true" 
      disable-url-rewriting="true" entry-point-ref="restAuthenticationEntryPoint"> 

В RestAuthenticationEntryPoint.java

@Component 
public final class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { 

    @Override 
    public void commence(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException authException) throws IOException { 
     response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized"); 
    } 

} 

Всякий раз, когда какой-либо пользователь пытается получить доступ к ресурсам без проверки подлинности, он выдаст следующую ошибку:

HTTP Status 401 - Unauthorized 

Вышеуказанное поведение является правильным только для служб Rest. Однако я хотел бы иметь поведение по умолчанию, которое перенаправляет пользователя на страницу входа для обычного веб-запроса, если пользователь не прошел аутентификацию. Как достичь этого?

+0

Я думаю, что эта ссылка может помочь [Handle несанкционированного сообщения об ошибке для базовой аутентификации в Spring Security] (http://stackoverflow.com/questions/4397062/handle-unauthorized- error-message-for-basic-authentication-in-spring-security) –

+0

См. также: http://stackoverflow.com/questions/23739746/howto-configure-spring-security-to-return-403-for-rest- URLs-и-редирект к Logi – yankee

ответ