deprecated

[deprecated] Spring security permitAll 이 동작하지 않을 때

hojak99 2019. 1. 24. 01:46

해당 글은 제가 어떤 문제가 일어났었는지, 왜 이렇게 해결했는지에 대한 내용이 없어 잘못된 내용을 전달하고 있다고 생각이 되어 아래 내용은 무시해주시면 감사하겠습니다.
추후 다시 spring security 에서 cors, csrf 에 관한 글을 다시 작성해서 링크를 첨부하도록 하겠습니다
(2021-07-24)

 

 

 

 

 


 


    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/api/users/login")
                .permitAll()
                .antMatchers("/api/**")
                .authenticated();
    }

위의 코드를 작성했을 때 실제 /api/users/login 에 요청을 해보면 permitAll() 로 지정해주었어도 원하는 결과를 얻지 못한다. (막힌다는 뜻)

이럴 땐 다음과 같이 configure(WebSecurity) 메소드를 오버라이딩해서 ignoring() 을 호출해 url 을 추가해주면 된다.

아래의 코드를 참고하자.


    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/api/**")
                .authenticated();
    }

    /**
     * configure(HttpSecurity) 에서 permitAll 이 먹히지 않을 때
     * 다음의 메소드를 오바라이딩해주면 된다.
     *
     * @param web
     */
    @Override
    public void configure(WebSecurity web) {
        web
                .ignoring()
                .antMatchers("/api/users/login");
    }

정상적으로 요청이 간다.

반응형