관리 메뉴

너와 나의 스토리

[Spring security] "*.permitAll()"을 해도 post가 안된다면 본문

개발/Spring Boot

[Spring security] "*.permitAll()"을 해도 post가 안된다면

노는게제일좋아! 2020. 7. 17. 18:31
반응형
[ ~~.csrf().disable() ]를 추가하자!

CSRF 때문에 forbidden이 뜬 것!!

 

  • CSRF란?
    • 자기도 모르게 특정 웹사이트 요청하는 공격하게 되는 것을 말한다.
    • 이를 방지하기 위해 default로 post가 막혀있는 것 같다.

 

 

/*import*/

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private CustomAuthenticationProvider customAuthenticationProvider;

    @Bean
    public PasswordEncoder passwordEncoder() { // bcrypt 해쉬 알고리즘 이용
        return new BCryptPasswordEncoder();
    }

    @Override
    public void configure(WebSecurity web) {
        web
                .ignoring()
                .antMatchers("/css/**", "/js/**", "/img/**")
                .antMatchers("/h2-console/**", "/swagger-ui/**");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                  .authorizeRequests()
                  .antMatchers("/main", "/swagger-ui/**","/swagger-ui").permitAll()
                  .antMatchers("/admin/**").hasRole("ADMIN") // '/admin/*' 요청은 ADMIN 권한을 가진 사용자만 접근 가능
                  .anyRequest().authenticated() // 그 외 모든 요청은 인증된 사용자만 접근 가능
                .and()
                  .formLogin()
                  .defaultSuccessUrl("/loginsuccess")
                  .failureUrl("/fail")
                  .permitAll()
                .and()
                	.logout()
                .and()
                	.csrf().disable();
    }

    @Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.authenticationProvider(customAuthenticationProvider);
    }
}
반응형
Comments