Точка OAuth2AuthenticationEntryPoint устарела

#spring #spring-boot #spring-security #spring-security-oauth2

Вопрос:

У меня есть некоторый фильтр, который возвращает 401, когда в запросе присутствует какой-то заголовок.

мой фильтр-это:

 @Component
@Order(1)
public class BlockHeaderFilter implements Filter {

   private static final AuthenticationEntryPoint authenticationEntryPoint = new OAuth2AuthenticationEntryPoint();

   @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
       ...
       if (headerExist) {
          Exception failed = new Exception("Unauthorized request. x-private header is forbidden");
          authenticationEntryPoint.commence(
             httpServletRequest,
             httpServletResponse,
             new InsufficientAuthenticationException(failed.getMessage(), failed)
          );
       }
       ...
    }

}
 

Это работает нормально, но с весны 5, похоже, точка OAuth2AuthenticationEntryPoint устарела.

‘org.springframework.безопасность.oauth2.поставщик.ошибка.OAuth2AuthenticationEntryPoint’ устарел

 
/**
 * If authentication fails and the caller has asked for a specific content type response, this entry point can send one,
 * along with a standard 401 status. Add to the Spring Security configuration as an {@link AuthenticationEntryPoint} in
 * the usual way.
 *
 * <p>
 * @deprecated See the <a href="https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide">OAuth 2.0 Migration Guide</a> for Spring Security 5.
 *
 * @author Dave Syer
 * 
 */
@Deprecated
public class OAuth2AuthenticationEntryPoint extends AbstractOAuth2SecurityExceptionHandler implements
        AuthenticationEntryPoint {
   ...
}
 

Просматривая руководство по миграции (https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide) или где-либо еще, я не могу найти современный шаблон для той же задачи.

Кто-нибудь знает, что заменяло OAuth2AuthenticationEntryPoint?

Спасибо!

Комментарии:

1.то, что вы ищете, вероятно, BearerTokenAuthenticationEntryPoint docs.spring.io/spring-security/site/docs/current/api/org/…

2. @Toerktumlare Отлично! Спасибо!

Ответ №1:

AuthenticationEntryPoint представляет собой пружинный интерфейс.

И если вы посмотрите в api, вы увидите, что под всеми известными классами реализации вы можете найти реализацию BearerTokenAuthenticationEndpoint

Baerer token является более нейтральным, чем написание oauth2 , поскольку существуют другие стандарты аутентификации, которые также используют токены.