반응형
인메모리 사용자란?
스프링시큐리티가 실행 될 때 사용자를 생성하고, 애플리케이션이 종료되면 삭제하는 사용자를 말합니다. 말 그대로 메모리에 사용자가 저장되어 프로그램이 종료되면 사용자는 없어집니다. 주로 테스트 목적으로 사용하기 적합합니다.
구현
인메모리 사용자 설정은 여러가지 방법이 있습니다. 그 방법 중 스프링공식문서에서 한 예제를 참고하여 구현하고자 합니다.
스프링 공식문서([1])에 친절히 예제가 설명되어 있습니다. 스프링시큐리티 WebSecurityConfigurerAdapter를 상속해서 configure(AuthenticationManagerBuilder auth)를 오버라이딩하면 됩니다.
아래 예제는 계정 aaa, bbb, ccc를 만들고 각각 비밀번호를 password로 설정합니다. 비밀번호를 평문으로 저장하기 위해서 {noop} prefix가 필요합니다.
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// "/a"api 요청은 모두 허용하고 나머지는 인증요구
.authorizeRequests()
.antMatchers("/a").permitAll()
.anyRequest().authenticated()
.and()
// 로그인 페이지는 모두 허용
.formLogin()
.permitAll()
.and()
// 로그아웃 페이지는 모두 허용
.logout()
.permitAll();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("aaa").password("{noop}password").roles("ADMIN");
auth.inMemoryAuthentication().withUser("bbb").password("{noop}password").roles("ADMIN");
auth.inMemoryAuthentication().withUser("ccc").password("{noop}password").roles("ADMIN");
}
}
참고자료
반응형
'전공영역 공부 기록' 카테고리의 다른 글
스프링부트 JPA 인메모리 H2 DB 설정 (0) | 2021.09.08 |
---|---|
bash쉘 스크립트 - 환경변수 값이 있는지 확인 (0) | 2021.09.07 |
파이썬 코딩테스트에서 input()과 sys.stdin.readline() 속도비교 (0) | 2021.08.28 |
쿠버네티스 job오류 제어 (0) | 2021.08.22 |
쿠버네티스 잡(job) (0) | 2021.08.21 |