일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 인스턴스
- 감사기록
- GitHub
- KPT
- TiL_1st_0419
- 스파르타내일배움캠프TIL
- 객체지향 언어
- #스파르타내일배움캠프TIL
- static
- JVM
- Java
- Git
- 스레드
- 성장기록
- Token
- 생성자
- 내일배움캠프
- Github_token
- 클래스
- 회고록
- 해우소
- 포맷은 최후의 보루
- #내일배움캠프
- 변수의 다양성
- 스파르타내일배움캠프
- #스파르타내일배움캠프
- 메서드
- Diary 해우소
- diary
- Java의 이점
- Today
- Total
몬그로이
SecurityConfig 설정하기 본문
Security (Filter) 를 거친후 JWT 발급이 진행된다
그렇기 때문에 마지막에 설정해야 하는 것은 SecurityConfig 클래스
필터 단에서 보안과 관련한 설정들이 담겨있다고 생각하면 된다
원래는 WebSecurityConfigurerAdapter 를 상속을 받아서 Override 하면 되는 것이었지만
spring security 5.7 이상에서 더 이상 WebSecurityConfigurerAdapter 사용을 권장하지 않는다
대신 SecurityFilterChain을 반환하는 메서드를 Bean 으로 등록하여 SecurityConfig에 넣으면 된다
** SecurityFilterChain은 스프링 시큐리티의 핵심 구성 요소 중 하나로,
HTTP 요청이 들어올 때 필터 체인에서 각각의 필터가 순차적으로 요청을 처리하거나 거부하는 역할을 함
SecurityFilterChain에 담길 수 있는 내용으로는
- CSRF 설정
- CORS 설정 // 타 웹의 api 등을 통해 내 웹으로 접근할 수 있도록 할 경우 필요
- JWT를 사용하기 위해 기본으로 제공되는 Session 방식 중단처리**
- Filter 순서 설정
-
그렇기 때문에 담기는 내용으로는
- 로그인한 클라이언트 인증하기
- 인증된 클라이언트에게 JWT 발급해주기
- 인증받은 클라이언트가 보내오는 JWT 받아내기
- 받은 JWT 디코딩하기
가 되겠다
더 세분화하여
- 클라이언트의 권한에 다른 접근 가능 url 설정
- 사이트를 변조하려는 요청을 방지
- 로그인가능한 url 지정 >> 성공시 또는 실패시 리다이렉트 url 지정
- 로그아웃 기능 이용시의 조건과 url 지정
- 로그인한 클라이언트 인증(service 클래스로 전달하기)
로그인 실패시 예외 핸들러 클래스 만들때 참고
2.스프링 시큐리티 [로그인 실패 핸들링하기]
로그인 실패를 하게 되면 “loginURL?error”라는 url로 바뀔 뿐, 사용자 입장에서는 무엇이 일어났는지 아무것도 알 수 없다.따라서 로그인을 실패할 경우, 아래 html(mustache)처럼 실패 이유를 출력해
velog.io
로그인 실패시 Failure Handler
securityConfig.java private final AuthenticationFailureHandler customAuthFailureHandler; @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); http.authorizeRequests() .antMatchers("/","/user/**","/image/**","/subs
minwoo-it-factory.tistory.com
도중에 cannot resolve symbol 에러 발생해결
https://www.lesstif.com/java/intellij-cannot-resolve-symbol-125305274.html
인텔리제이(IntelliJ) cannot resolve symbol 에러 처리
www.lesstif.com
spring security 5.7 이상에서더 이상 WebSecurityConfigurerAdapter 사용을 권장하지 않는다
https://this-circle-jeong.tistory.com/162
[Spring Boot] WebSecurityConfigurerAdapter 지원 중단
이전 글 참고 [Spring Boot] Spring Security 회원 등록 (인증, 인가) + BCryptPasswordEncoder [Spring Boot] Spring Security 회원 등록 (인증, 인가) + BCryptPasswordEncoder 이전 글에 이어서 [Spring Boot] Spring Security 처리 과정
this-circle-jeong.tistory.com
CustomLoginFailureHandler 클래스를 만드는데
HttpServletRequest
가 import 되지 않는 문제 발생
구글링하여
compileOnly 'jakarta.servlet:javax.servlet-api:4.0.1'
를 gradle 에 추가했지만 해결되지 않음
아래 링크 참고하여
implementation 'org.springframework.boot:spring-boot-starter-web'
가 gradle에 등록되어 있지 않았음을 확인하고 추가하니 해결됨!
참고
https://pika-chu.tistory.com/1426
javax
javax.servlet.http.Cokkie, javax.servlet.http.HttpServletRequest를 import해야해서 javax에 대해 찾아봤다. javax Java API의 일부 Java SE(Java Standard Edition)와 Java EE(Java Enterprise Edition)에서 사용되는 패키지들을 담고 있
pika-chu.tistory.com