Spring Security

DDUBINI·2021년 1월 13일
0

시작하기

  1. pom.xml 추가하기
<!-- security -->
	<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core -->
	<dependency>
	    <groupId>org.springframework.security</groupId>
	    <artifactId>spring-security-config</artifactId>
	    <version>${org.springframework-security-version}</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework.security</groupId>
	    <artifactId>spring-security-taglibs</artifactId>
	    <version>${org.springframework-security-version}</version>
	</dependency>
  1. web.xml 추가하기
	  <!-- security -->
	  <filter>
	  	<filter-name>springSecurityFilterChain</filter-name>
	  	<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	  </filter>
	  <filter-mapping>
	  	<filter-name>springSecurityFilterChain</filter-name>
	  	<url-pattern>/*</url-pattern>
	  </filter-mapping>

filter-name은 무조건 springSecurityFilterChain 로 해야 한다. 스프링에서 의존하는 필터이기 때문이다.

  1. spring bean xml 작성하기
    이름은 securtiy-context.xml로 하자.

security는 접속 할 때부터 실행되어야 한다. root에 넣어놓자.

3.1부터 어노테이션을 통한 자바 설정 지원하기 때문에 3.2부터는 xml로 설정하지 않고도 security가능

xml기반 설정
web.xml에 DelegatingFilterProxy라는 springSecurityFilterChain을 등록

어노테이션기반 설정
WebSecurityConfigurerAdapter을 상속받은 클래스에 @EnableWebSecurity 어노테이션을 명시하면 된다.
그리고 포함된 springSecurityFilterChain을 등록하기 위해서는 AbstractSecurityWebApplicationInitializer을 상속받은 WebApplicationInitializer을 만들어 두면 된다.
그 다음에는 보통 스프링 MVC를 이용해서 애플리케이션을 구성하기 때문에 ApplicationIniticalizer에 WebSecurityConfigurerAdapter를 상속받은 클래스를 getRootConfigClasses() 메소드에 추가하는 것으로 스프링 시큐리티에 대한 기본적인 적용은 끝입니다.

위 두개는 같은 결과임

UserDetails & UserDetailsService

UserDetails = 사용자 정보, 그래서 user 클래스 제공한다. 이는 이름, 패스워드, 권한에 대한 필드만 존재
-> 부가적인 정보를 담으려면 UserDetails이라는 구현체를 직접 만들어야 한다.

UserDetailsService = 스프링 시큐리티 인증 시에 사용된다.
UserRepository를 통해 저장된 인증정보를 검색한후 존재하지 않으면 UsernameNotFoundException을 던지고 있으면 UserDetails객체 반환.(MemberWrapper생각)

AuthenticationProvider

패스워드 검증하는 곳

참고 자료
https://postitforhooney.tistory.com/entry/SpringSecurity-%EC%B4%88%EB%B3%B4%EC%9E%90%EA%B0%80-%EC%9D%B4%ED%95%B4%ED%95%98%EB%8A%94-Spring-Security-%ED%8D%BC%EC%98%B4

profile
ㅎㅇㅎㅇ

0개의 댓글