인증 API 사용자 정의 기능구현
-
WebSecurityConfigurerAdapter 핵심 객체 : SpringSecurity의 웹 보안 기능 및 초기화 설정을한다.
-
SpringSecurity가 구동되며 WebSecurityConfigurerAdapter 를 초기화한다.
-
WebSecurityConfigurerAdapter 가 HttpSecurity를 생성하여 세부적 보안기능을 설정하는 인증과 인가 API를 제공하는 것이다!
어떻게 설정할 수 있나요?
WebSecurityConfigurerAdapter 를 상속하여 사용자 정의 보안클래스를 만드는것이다.
-
상속 클래스의 메소드중 configure(HttpSecurity) 메서드를 재정의하여 인증이나 인가와 관련된 API를 설정하여 구현한다.
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;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http//인가
.authorizeRequests() //요청들에 대한
.anyRequest().authenticated();//어느 요청이든. 인증을한다.
http//인증
.formLogin();//폼로그인 방식으로 인증작업을 하겠다.
}
}
흐름은 어떻게?
스프링시큐리티 구동 -> WebSecurityConfigurerAdapter 구현객체 초기화 -> HttpSecurity 초기화 과정에서 11개정도의 API를 호출 -> API가 설정 클래스들을 호출 -> 설정클래스들이 Filter를 생성
@Configuration , @EnableWebSecurity
WebSecurityConfigurerAdapter 상속클래스도 엄연한 설정클래스, @Configuration 이 필요
@EnableWebSecurity 선언이 필요
@EnableWebSecurity 은 설정클래스 와 여러 클래스를 임포트 해서 실행시켜주는 어노테이션이다.
Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
@Import({WebSecurityConfiguration.class, SpringWebMvcImportSelector.class, OAuth2ImportSelector.class})
@EnableGlobalAuthentication
@Configuration
public @interface EnableWebSecurity {
boolean debug() default false;
}
기본으로 주어지는 user를 바꾸고 싶어요!
boot 에서 주어지는application.properties
-
제공되는 spring.security의 name 과 password 속성을 변경해주면 되겠다!
spring.security.user.name=user
spring.security.user.password=1111
# 스프링 시큐리티 에서 주어지는 유저에 관한 정보 수정
'springframework > 시작하자SpringSecurity' 카테고리의 다른 글
6.Remember Me 인증 (0) | 2020.09.19 |
---|---|
5.LogoutFilter (0) | 2020.09.19 |
4.UsernamePasswordAuthenticationFilter (0) | 2020.09.19 |
3.Form Login 인증 (0) | 2020.09.19 |
1.스프링 시큐리티와 의존성 추가시에 일어나는 일들. (0) | 2020.09.17 |