Скажем, у меня есть служба Spring Boot Rest, которую я хотел бы защитить с помощью этой простой логики, если есть заголовок «токен» со значением «123456», тогда запрос в порядке, и я должен его обработать, в противном случае я должен отправить обратно несанкционированную ошибку 401 http.
Как я могу реализовать эту логику в Spring boot 1.5.
Реализуя GenericFilterBean
.
public class CustomAuthenticationFilter extends GenericFilterBean {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
// get header and validate from request object
filterChain.doFilter(request, response);
}
}
И подключите фильтр к вашей конфигурации безопасности.
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
// other security config
.addFilterBefore(new CustomAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
}
Спасибо, не могли бы вы сказать, что мне делать в фильтре, если значение заголовка неверное? Должен ли я писать непосредственно в объект ответа и возвращаться из функции без вызова filterChain.dofilter?
Да, если ваши требования не удовлетворены, не продолжайте фильтрацию запросов.
Вы пытались это реализовать? если нет, сделайте это и опубликуйте свою работу.