Spring security 1
✔️security 기본 user/password 설정
설정파일로 설정 (한 명의 User만 설정 가능), 테스트 용도로 사용
아래 User 정보로 시큐리티 필터 통과 가능
spring.security.user:
name: myuser
password 1234
roles: USER
✔️ 현재 인증정보에 대한 접근SecurityContextHolder
spring security가 관리하는 인증정보가 담기는 곳
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
✔️ 컨트롤러에서 권한검증
@PreAuthorize + @EnableGlobalMethodSecurity(prePostEnabled=true)
@PreAuthorize("hasAnyAutority('ROLE_USER')")
@PreAuthorize("hasAnyAutority('ROLE_ADMIN')")
- 메서드 수준 권한 제어
Spring Security의 권한 네이밍: ROLE_권한
"hasAnyAutority('ROLE_USER')" : USER라는 권한을 허용
"hasAnyAutority('ROLE_ADMIN')" : ADMIN라는 권한을 허용
SecurityConfig 에 설정
@EnableGlobalMethodSecurity(prePostEnabled=true)
✔️ 테스트를 위한 User 생성
WebSecurityConfigurerAdapter를 구현하는 Security 설정클래스(SecurityConfig)에 정의
configure(AuthenricationManagerBuilder auth)
auth.inMemoryAuthentication()
.withUser(
User.builder()
.username("t1")
.password(encoder().encode("1234"))
.roles("USER")
).withUser(
User.builder()
.username("t2")
.password(encoder().encode("1234"))
.roles("ADMIN")
)
- 패스워드 인코더 필요
- 해당 메서드로 User를 생성하면 설정파일에 추가한 User는 무시된다.
패스워드 인코딩 시 테스트 용도로만 withDefaultPasswordEncoder() 사용
auth.inMemoryAuthentication()
.withUser(
User.withDefaultPasswordEncoder()
.username("user1")
.password("1234")
.rols("USER")
)
✔️ WebSecurityConfigurerAdapter
- configure(HttpSecurity http)
- spring security filter-chain에 대한 설정 및 적용범위 설정
- spring security filter-chain는 여러 필터에 의해 수행되는 인증 과정
ex)
http.logout.disabled()
.csrf.disabled()
.header.disabled()
logoutFilter csrfFilter, headerFilter 등을 동작하지 않도록 설정
@EnableWebSecurity(debug=true)로 확인 가능
✔️ Security filter 디버깅
@EnableWebSecurity(debug = true)
👍 수강인증

패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Spring Security' 카테고리의 다른 글
| 패스트캠퍼스 챌린지 17일차 - Spring Security 6 (0) | 2021.09.22 |
|---|---|
| 패스트캠퍼스 챌린지 16일차 - Spring Security 5 (0) | 2021.09.21 |
| 패스트캠퍼스 챌린지 15일차 - Spring Security 4 (0) | 2021.09.20 |
| 패스트캠퍼스 챌린지 14일차 - Spring Security 3 (0) | 2021.09.19 |
| 패스트캠퍼스 챌린지 13일차 - Spring Security 2 (0) | 2021.09.18 |