인증에 대한 전반적인 처리과정 흐름을 이해해보자 클라이언트가 로그인을 요청한다. 폼 인증방식으로 요청할 때 UsernamePasswordAuthenticationFilter가 작동한다. 사용자의 id와 password를 받아서 Authentication 객체에 담는다. id와 password를 담은 인증 전 토큰 객체를 생성해서 AuthenticationManager에게 인증을 맡긴다. AuthenticationManager가 필터로 부터 받은 인증객체를 전달받는다. AuthenticationManager의 역할은 인증의 전반적인 관리를 하는데 실제로 인증 역할을 하지 않고 적절한 AuthenticationProvider에 위임한다. AuthenticationManager가 사용자의 현재 id , pas..
SecurityContextPersistenceFilter SecurityContext 객체의 생성과 저장 조회를 하는 역할을 한다. FilterChainProxy 에서 두 번째에 위치하고 있다. 나머지 필터들이 참조해서 사용하기 때문이다! 익명 사용자 새로운 SecurityContext 객체를 생성하여 SecurityContextHolder에 저장 AnonymousAuthenticationFilter 에서 AnonymousAuthenticationToken 객체를 SecurityContext에 저장 인증 시 새로운 SecurityContext 객체를 생성하여 SecurityContextHolder에 저장 UsernamePasswordAuthenticationFilter 에서 인증 성공 후 Securit..
인증 저장소 SecurityContext Authentication 객체가 저장되는 보관소로 필요 시 언제든지 Authentication 객체를 꺼내어 쓸 수 있도록 제공되는 클래스 ThreadLocal에 저장되어 아무 곳에서나 참조가 가능하도록 설계함. 인증이 완료되면 HttpSession에 저장되어 어플리케이션 전반에 걸쳐 전역적인 참조가 가능하다. SecurityContextHolder 인증된 사용자 정보를 담는 그릇? 이라고 생각하는게 좋을 것 같다. ScurityContext 객체 저장 방식 MODE_THREADLOCAL: 스레드 당 SecurityContext 객체를 할당, 기본값 MODE_INHERITABLETHREADLOCAL: 메인 스레드와 자식 스레드에 관하여 동일한 SecurityCo..
Authentication Authentication이란 인증 주체이다. 당신이 누구인지 증명하는 것! 사용자의 인증정보를 저장하는 토큰 개념 인증 시 id와 password를 담고 인증 검증을 위해 전달되어 사용된다. 인증 후 최종 인증 결과 (user 객체, 권한정보)를 담고 SecurityContext에 저장되어 전역적으로 참조가 가능) Authentication authentication = SecurityContextHolder.getContext().getAuthentication() Authentication 객체의 구조 1) principal: 사용자 ID 혹은 User 객체를 저장 2) credentials: 사용자 비밀번호 3) authorities: 인증된 사용자의 권한 목록 4) d..
스프링 시큐리티 설정클래스가 여러 개 있을 경우 설정 클래스별로 보안작동이 각각 작용하게 된다. 설정클래스 별로 보안 기능이 각각 작동 설정클래스 별로 RequestMathcer 설정 http.antMatcher("/admin/**") 설정클래스 별로 필터가 생성 FilterChainProxy가 각 필터들을 가지고 있다. 요청에 따라 RequestMatcher와 매칭되는 필터가 작동된다. 1. GET방식으로 /admin 주소로 자원 요청 2. FilterChainProxy에서 요청을 받아 요청을 처리할 필터를 선택 3. 요청 URL과 matches를 하여 true가되는 Filter를 선택해야 한다. => FilterChainProxy가 저장하고 있는 각각의 SecurityConfig 객체들에서 Reque..
기존 맥 os 업데이트 이후 jdbc connection locale 에러가 나오면 시스템 환경설정 > 언어및지역 > 지역 지역을 대한민국에서 미국으로 변경한뒤에 다시 대한민국으로 변경하면 됐지만 ventura 부터는 버그인지 아직은 안된다고함. java 환경이면 jvm 옵션에 -Duser.language=kr -Duser.country=KO 추가 메이븐 환경이면 .... -Duser.language=ko ... 출처 (참고문헌) https://stackoverflow.com/questions/51431497/cant-connect-to-oracle-database-with-intellij-locale-not-recognized https://www.clien.net/service/board/cm_mac..
콩 심은 데 콩 나고 팥 심은 데 팥 난다. 원인에 따라서 그 결과가 생긴다는 말이다. 대한민국 A매치 경기나 토트넘 구단에서 뛰고 있는 손흥민 선수의 인터뷰를 볼 때마다 말도 잘하고 생각이 깊다는 느낌을 많이 받았었는데 아마 아버지 손웅정의 역할이 크지 않았나 싶다. 이 책을 읽었던 이유는 손흥민 선수가 좀 유명해질때쯤 그의 아버지인 손웅정 씨에 대해서도 언론에서도 조금씩 비치고 평소 훈련도 같이 한다고 하는 걸 알았던 때에 책도 내셨다고 한걸 봐서 이북으로 사서 읽게 되었다. 그냥 손웅정이라는 사람이 궁금했다. 외모를 보고 판단하는건 좋지 않다고 생각하지만 처음 사진으로 손웅정 씨를 봤을 때는 무섭게 생겼다. 정말 고생 많이 하고 자라오셨을 것 같다.라고 생각했었는데 책을 읽어보니 정말 어느 정도는 ..
- Total
- Today
- Yesterday
- docker
- 북리뷰
- mybatis
- 오라클
- LocalDate
- springboot
- window
- intellij
- mybatis config
- config-location
- localtime
- oracle
- rocky
- LocalDateTime
- Mac
- 베리 심플
- Spring
- Github Status
- Spring Security
- Linux
- maven
- JavaScript
- input
- elasticsearch
- 프로페셔널 스튜던트
- svn
- Kotlin
- jQuery
- Bash tab
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |