spring security

OneTwoThree·2023년 6월 15일
0

springboot

목록 보기
9/9

로그인 기능을 구현하기 위해 spring security 공부가 필요하다.
myroutine 프로젝트 시에는 이해 없이 가져다 사용했는데, 공부를 하고 써보자

이해하기

참고 글 : 초보자가 이해하는 spring security
참고 글 2

Spring Security가 애플리케이션 보안을 구성하는 두가지 영역 :
인증 (Authentication) , 권한 (Authorization)

  • 인증 : 애플리케이션의 작업을 수행할 수 있는 주체라고 주장할 수 있는 것
  • 권한 : 인증된 주체가 애플리케이션의 동작을 수행할 수 있는 주체라고 허락되었는지 결정하는 것
  • 권한 승인이 필요한 부분으로 접근하려면 인증 과정을 통해 주체가 증명되어야만 함

권한 부여에도 두가지 영역이 존재함.

  • 웹 요청 권한

  • 메소드 호출 및 도메인 인스턴스에 대한 접근 권한
    스프링 시큐리티는 모든 중요한 영역에 필요한 기능 제공


  • 로그인 화면을 통해서 아이디와 비밀번호를 입력받아 로그인하는 과정은 HTPP 기본 인증(HTTP Basic Authentication) 메커니즘

  • HTTP 기본 인증 메커니즘을 이용하는 방식이 스프링 시큐리티의 폼 기반 로그인


시작하기

spring security는 maven, gradle 같은 빌드 도구를 통해 쉽게 가져올 수 있음

dependencies {
	compile 'org.springframework.security:spring-security-web:4.2.2.RELEASE'
	compile 'org.springframework.security:spring-security-config:4.2.2.RELEASE'
}
  • build.gradle

구성

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
}
  • 자바 기반의 설정에서는 WebSecurityConfigureAdapter를 상속받은 클래스에 @EnableWebSecurity 어노테이션을 명시하면 springSecurityFilterChain이 자동으로 포함되어 짐
public class SecurityWebApplicationInitializer
	extends AbstractSecurityWebApplicationInitializer {

}
  • 포함된 springSecurityFilterChain을 등록하기 위해서는 AbstractSecurityWebApplicationInitializer를 상속받은 WebApplicationInitializer를 만들어두면 됨

보류

0개의 댓글