반응형
SMALL
개요
스프링 에서의 Security 는 상당히 중요한 부분이다. 잘 모르고 Security 를 이것저것 설정해보고 cors 와 csrf 에러로 삽질을 엉청했다.. 그래서 개념 정도는 공부하기로 했다..
1. Spring Security 설정
package mj_crossShot.configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
@EnableWebSecurity
public class SecurltyConfig extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.cors().disable() //cors방지
.csrf().disable() //csrf방지
.formLogin().disable(); //기본 로그인 페이지 없애기
// .headers().frameOptions().disable();
// http .httpBasic().disable() // Http basic Auth 기반으로 로그인 인증창이 뜸. disable 시에 인증창 뜨지 않음.
//
// .csrf().disable() // rest api이므로 csrf 보안이 필요없으므로 disable처리.
// .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) // jwt token으로 인증하므로 stateless 하도록 처리. .and() .authorizeRequests()
//
// .antMatchers("/login").permitAll()
//
// .antMatchers("/hello2").authenticated() // 인증권한이 필요한 페이지.
//
// .anyRequest().permitAll() // 나머지 모든 요청 허용 ( 생략 가능 )
}
httpBasic() : Http basic Auth 기반으로 로그인 인증창이 뜸. 기본 인증 로그인을 이용하지 않으면 disable
csrf() : html tag 를 통한 공격 ( api 서버 이용시 disable() )
sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) : STATELESS 는 인증 정보를 서버에 담아 두지 않는다.
authorizeRequests() : 각 경로 path 별 권한 처리
'Spring & Spring Boot' 카테고리의 다른 글
Springboot @Scheduled 애노테이션 쓰레드 문제 (0) | 2023.01.19 |
---|---|
Springboot & Vue3.js - 쿠키 , 세션을 이용한 로그인 처리 (1) | 2023.01.12 |
Springboot & Vue3.js - 암호화된 비밀번호 검증 - BcryptPasswordEncoder (0) | 2023.01.11 |
Springboot & Vue3.js - 비밀번호 암호화 - BcryptPasswordEncoder (0) | 2023.01.11 |
Spring - 개발환경 구축 (0) | 2022.09.02 |
댓글