TIL

Security

haedal-uni 2022. 10. 11. 17:21
728x90

WebSecurityConfigurerAdapter 상속 후, configure 메소드를 오버라이딩 하여 설정하는 방식에서 

앞으로는 SecurityFilterChain 를 빈으로 등록하는 방식을 권장

*보안 설정으로 변경

 

 

공식문서

https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter

 

 

WebSecurityConfigurerAdapter 상속 후, configure 메소드 오버라이딩하여 설정

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

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

    }

}

 

WebSecurityConfigurerAdapter : 기본적인 웹보안 기능의 활성화 및 설정 등 모든 처리를 한다.

 

 

🔽 

 

SecurityFilterChain 를 빈으로 등록

@Configuration
public class SecurityConfiguration {

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {

        return http.build();
    }

}

 

 

출처

[SPRING Security - WebSecurityConfigurerAdapter제목없음deprecated 관련 이슈 및 권장방식 적용]

 


@Configuration : 설정파일을 만들기 위한 애노테이션 or Bean을 등록하기 위한 어노테이션이다.

 

 

 

AuthenticationFailureHandler

스프링 시큐리티에서 로그인 실패시 처리해주어야 할 일 들을 커스터마이징 하고 싶다면

AuthenticationFailureHandler를 구현한 커스텀 클래스를 만들어 주면 된다.

 

 

 

http.csrf.disable()

csrf란?

Cross site Request forgery로 사이즈간 위조 요청인데,

즉 정상적인 사용자가 의도치 않은 위조요청을 보내는 것을 의미한다.

 

예를 들어 A라는 도메인에서, 인증된 사용자 H가 위조된 request를 포함한 link, email을 사용하였을 경우

(클릭, 또는 사이트 방문만으로도) A 도메인에서는 이 사용자가 일반 유저인지, 악용된 공격인지 구분할 수가 없다.

 

REST API에서의 csrf

rest api를 이용한 서버라면, session 기반 인증과는 다르게 stateless하기 때문에 서버에 인증정보를 보관하지 않는다. rest api에서 client는 권한이 필요한 요청을 하기 위해서는 요청에 필요한 인증 정보를(OAuth2, jwt토큰 등)을 포함시켜야 한다. 따라서 서버에 인증정보를 저장하지 않기 때문에 굳이 불필요한 csrf 코드들을 작성할 필요가 없다.           

 

 

 

.anyRequest().authenticated() // 모든 요청을 인증한다.

 

 

 

 

출처

Spring] @Configuration 개념과 장점

[스프링/시큐리티] 로그인 실패시 화면에 입력했던 아이디 다시 띄우기 onAuthenticationFailure, AuthenticationFailureHandler

[Security] 스프링 시큐리티 설정 및 사용자 정의 보안기능 구현

Spring security - csrf란?

 

 

728x90

'TIL' 카테고리의 다른 글

Git blog 이미지 크기 수정하기(chirpy)  (0) 2022.10.26
고객센터 틀 작성  (0) 2022.10.20
2022-09-25 스터디 ch2, ch3 정리  (0) 2022.09.24
2022-09-25 스터디 ch1 정리  (0) 2022.09.22
2022.09.18 스터디 정리  (0) 2022.09.19