[SptringSecurity] 스프링 시큐리티 WebSecurityConfigurerAdapter Deprecated 대처하기
2023. 5. 1. 13:44
몰아 넣기
스프링공식블로그 에 WebSecurityConfigurerAdapter를 사용하는 것을 권장하지 않고, 컴포넌트 기반 설정으로 변경할것을 권장한다고 한다. 그래서 스프링 시큐리티 5.7.0-M2 부터 WebSecurityConfigurerAdapter는 deprecated 되었고 스프링 시큐리티 강의를 보면서 WebSecurityConfigurerAdapter를 쓰지 않고 적용하다보니 시간이 오래걸렸고 이 후 바로 쓰기위해 정리를 했다. HttpSecurity 구성 기존 @Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecu..
Spring Boot 기반으로 개발하는 Spring Security : SecurityContextHolder, SecurityContext
2023. 4. 25. 21:57
무조건 따라하기/Spring Boot 기반 Security
SecurityContext • Authentication 객체가 저장되는 보관소로 필요 시 언제든지 Authentication 객체를 꺼내어 쓸 수 있도록 제공되는 클래스 • ThreadLocal 에 저장되어 한 쓰레드 내에서 참조가 가능하다. • 인증이 완료되면 HttpSession 에 저장되어 어플리케이션 전반에 걸쳐 전역적인 참조가 가능하다 SecurityContextHolder SecurityContext을 감싸고 있는 클래스로 SecurityContext를 저장하는 방식이 4가지가 있다. MODE_THREADLOCAL : 스레드당 SecurityContext 객체를 할당, 기본값 MODE_INHERITABLETHREADLOCAL : 메인 스레드와 자식 스레드에 관하여 동일한 SecurityCo..
Spring Boot 기반으로 개발하는 Spring Security : CSRF, CsrfFilter
2023. 4. 19. 22:08
무조건 따라하기/Spring Boot 기반 Security
CSRF CSRF란? CSRF는 Cross-Site Request Forgery의 약어로, "사이트간 요청 위조"를 의미한다. 공격자가 사용자가 로그인한 웹사이트를 통해 사용자가 모르는 상황에서 원치 않는 동작을 수행하게 하는 보안 취약점이다. 위 이미지와 같이 공격을 방지하기 위해 웹 개발자들은 요청을 보낼 때 추가적인 보안 검증 절차를 구현하고, 사용자에게 요청의 적절성을 확인하도록 요청하는 등의 대응 방안을 마련해야 한다. CsrfFilter CsrfFilter란? CsrfFilter는 웹 어플리케이션에서 CSRF(Cross-Site Request Forgery) 공격을 방지하기 위한 필터다. Spring Security에서 제공하는 CsrfFilter는, HTTP 요청에 대해 CSRF 토큰을 생성..
Spring Boot 기반으로 개발하는 Spring Security : 권한설정과 표현식
2023. 4. 16. 20:46
무조건 따라하기/Spring Boot 기반 Security
권한 설정 http.antMatchers("{url}").hasRole(“{role}") 와 같이 설정이 가능하다. http .authorizeRequests() .antMatchers("/login").permitAll() // login 페이지는 인증이 안돼도 접근이 가능해야하기 때문에 .antMatchers("/user").hasRole("USER") .antMatchers("/admin/pay").hasRole("ADMIN") .antMatchers("/admin/**").access("hasRole('ADMIN') or hasAnyRole('sys')") //표현식을 사용해 두개이상의 권한을 설정 .anyRequest().authenticated(); ※ 주의 사항 - 설정 시 구체적인 경로가 ..
Spring Boot 기반으로 개발하는 Spring Security : AnonymousAuthenticationFilter
2023. 4. 15. 11:13
무조건 따라하기/Spring Boot 기반 Security
AnonymousAuthenticationFilter 이란? 익명사용자 인증 처리 필터 익명사용자와 인증 사용자를 구분해서 처리하기 위한 용도로 사용 화면에서 인증 여부를 구현할 때 isAnonymous() 와 isAuthenticated() 로 구분해서 사용 인증객체를 세션에 저장하지 않는다 이미지로 플로우 확인 사용자가 자원에 접근하면 AnonymousAuthenticationFilter가 요청을 받는다. SecurityContextHolder(이하 SC)에 인증객체가 존재하는지 확인한다. 인증객체가 있다면 다음필터가 진행 인증객체가 없다면 AnonymousAuthenticationToken(익명사용자 토큰)을 생성해 SC에 저장 한다. (사용인증객체를 세션에 저장하지 않는다) SC에 저장한 Anon..