Как настроить CORS при входе пользователя - PullRequest
2 голосов
/ 27 октября 2019

Я получаю Not injecting HSTS header ошибку, но все еще не знаю, после поиска этого сообщения.

osswheader.writers.HstsHeaderWriter: не внедряет заголовок HSTS, поскольку он не соответствует requestMatcher org.springframework.security.web.header.writers.HstsHeaderWriter $ SecureRequestMatcher @ 30cc5ff

Ниже описано, что я сделал.

Запрос API http://localhost:8083/api/v1/users/login

Веб-конфигурация

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.csrf().disable();



        http.authorizeRequests()
                .antMatchers(HttpMethod.POST, SecurityConstants.SIGN_UP_URL)
                .permitAll();

        http.csrf().disable().addFilterBefore(corsFilter, AuthorizationFilter.class)
                .authorizeRequests()
                .antMatchers("/api/v1/**").authenticated();


    protected AuthenticationFilter getAuthenticationFilter() throws Exception {
        final AuthenticationFilter filter = new AuthenticationFilter(authenticationManager());
        filter.setFilterProcessesUrl("/api/v1/users/login");
        return filter;
    }

CorsFilter

@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CorsFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        final HttpServletResponse response = (HttpServletResponse) servletResponse;
        response.setHeader("Access-Control-Allow-Origin", "*");

        // without this header jquery.ajax calls returns 401 even after successful login and SSESSIONID being succesfully stored.
        response.setHeader("Access-Control-Allow-Credentials", "true");

        response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "X-Requested-With, Authorization, Origin, Content-Type, Version");
        response.setHeader("Access-Control-Expose-Headers", "X-Requested-With, Authorization, Origin, Content-Type");

        final HttpServletRequest request = (HttpServletRequest) servletRequest;
        if (!request.getMethod().equals("OPTIONS")) {
            filterChain.doFilter(request, response);
        } else {
            // do not continue with filter chain for options requests
        }
    }

    @Override
    public void destroy() {

    }
}

1 Ответ

2 голосов
/ 27 октября 2019

HSTS означает Http Strict Transport Security и является одним из заголовков по умолчанию , включаемых при использовании Spring Security.

Если у вас есть собственный набор настроек безопасностии уверены, что вы можете отключить заголовок безопасности HSTS, используйте:

http.headers().httpStrictTransportSecurity().disable();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...