본문 바로가기
Spring & Spring Boot

Spring Security 설정

by 지민재 2023. 1. 11.
반응형
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 별 권한 처리

 

출처 : https://powernote.tistory.com/2

댓글