1. 이 포스트는 스프링 부트 3에서의 보안 설정에 관한 내용으로 세부적인 것보다는 전반적인 것을 설명한다. 2. 이 포스트를 적는 이유는 스프링 보안이 세부적으로 들어가면 상당히 복잡해 보이는데 실제로는 그렇지 않다. 3. 세부적인 내용을 설명하는 포스트는 많지만 개괄을 제대로 설명하는 글이 없어서 적어본다. 4. 스프링 보안의 가장 기본은 FilterChainProxy와 DelegatingFilterProxy이다. 4. 보안 처리 요청은 실제 DelegatingFilterProxy는 등록된 FilterChainProxy을 사용하여 실제 보안 처리를 수행하게 된다. 아래의 delegate가 Filter를 구현한 FilterChainProxy를 저장하는데 이 proxy를 통해서 FilterChain내의 ..
1. Authentication은 인증 토큰이라고 할 수 있다. 1-1 인증토큰이라면 인증을 위한 정보를 가진 하나의 단위라고 생각하면 된다. 1-2 이 토큰은 정보를 담은 객체일 뿐 인증이 된 것일 수도 아닐 수도 있다. 2. Controller에서 entity를 저장할 때 유저정보와 연동이 필요한 경우 유용하게 사용할 수 있다. 3. 3가지 방식이 있는데 3-1 Authentication을 주입받아서 사용하기 3-2 Principal을 주입받아서 사용하기 3-3 @AuthenticationPrincipal을 사용하기 3-4 SecurityContext를 SecurityContextHolder에서 받아와서 사용하기 3-5 아래 소스로 설명한다. // Team Entity // 예제를 위해 User 속성..
0. 이미지는 인터넷 검색에서 가져온 내용이다. 개인의 정리 차원에서 작성한 내용이라 신경쓰지 않는다. 1. 스프링 보안 2가지로 큰 문제로 나눌 수 있다. 1-1 인증 1-2 권한(접근제어) 2. 인증 - 스프링은 권한에서 인증을 따로 떼낸 구조이다. 2-0 인증에 관해 인터넷에 수많은 포스트들이 있는데 아래 링크에서 아래 사진을 가져왔다. 2-0-1 찾아본 도식 중에서는 제일 좋은 것 같고 이 구조만 알아도 반은 먹고 들어간다. Spring Security : Authentication Architecture Here is the diagram for demonstrating list of classes and filters involved in spring security authentication..
1. Basic Authentication ? 1-1 웹인증에 사용되는 로그인이나 세션 검증 같은 기술들은 웹브라우저를 사용하지 않는 경우에는 적합하지 않다. 1-2 그리고 한 서버가 다른 서버의 서비스를 사용하는 경우와 같이 사용자의 관여가 없는 경우도 있다. 1-3 Basic Authentication은 보안이 강력하지는 않지만 이런 문제들에 대한 하나의 해결책이 될 수있다. 1-4 client는 Base64로 코드화된 인증정보를 HTTP Authrorization Header에 담아 전송한다. 1-5 각 Request 마다 인증정보가 포함되고 각 Request는 원자성을 가지기 때문에 서버는 session 관리가 필요없다. 2. 스프링에서 설정하기 2-1 Spring Security 설정에서 Htt..
1. 스프링 Security는 hashing(변환) 알고리즘으로 bcrypt을 권장하고 있다. 자세한 건 아래 링크 참조 1-1 단방향 hasning이다. 즉 암호화 된 값으로 원래값 복원이 불가능하다. 1-2 추가적인 보호를 위해 hashing 할때 랜덤 값(salt)을 추가하여 사용한다. 1-3 BCypt의 장점에 대한 글이다. Why you should use BCrypt to hash passwords In the online world, passwords play a critical role in keeping your data and other important information safe. For this reason, ensuring… medium.com 1-4 Salited Passwo..
0. 이 포스트는 이전 Spring : Web MVC + Spring 시리즈의 연속이다. 1. 이 포스트는 in-Memory 인증에서 MySql(JDBC)을 이용한 인증으로 프로그램을 변경하는 내용이다. 1-1 in Memory 인증은 아래 링크한 포스트의 제일 마지막 부분에 in-memory 인증 설정부분을 참조한다. Spring Security : Web MVC + Security with Java Config 설정하기 1. 이젠 xml 설정 같은 건 사용하지 않는다. Spring WebMVC with Java Config(no XML) 2. web.xml을 사용하지 않으려면 maven pom에 maven-war-plugin이 있어야 한다. 2-1 org.apache.maven.archetype we..
1. ADMIN이나 MANAGER만 볼 수 있는 링크를 EMPLOYEE권한만 가지고 있는 사용자에게 보여줄 필요가 없다. 2. 이렇게 선별적인 content의 표출은 Security jsp taglibs로 가능하다 2-1 security:authorize element를 통해 권한에 따른 content 표출이 가능하다. 2-2 access 속성에 SecurityConfig에서 설정한 것 처럼 hasRole로 해당 권한에 따른 표출을 다르게 할 수 있다. Leadership Meeting(Only for Managers) System Meeting(Only for Admins) 2-3 전체 페이지 소스는 아래와 같다. Company Website You are now logged in User :: Rol..
1. 사용자가 로그인을 성공했지만 권한이 없는 페이지로 접근한 경우 에러 페이지가 보여진다. 2. 이 페이지를 custom page로 바꾸는 방법에 대한 포스트다. 3. Security Config에 접근 거부가 생긴 경우 전환할 url을 설정한다. 3-1 접근 거부가 발생한 경우 security filters는 설정된 url로 request를 요청하게 된다. 3-1-1 아래 소스의 마지막 줄 .exceptionHandling().accessDeniedPage() 설정의 url을 설정할 수 있다. package pe.pilseong.springsecurity.config; import org.springframework.context.annotation.Configuration; import org.sp..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- RestTemplate
- Spring Security
- 자바
- 외부파일
- hibernate
- 하이버네이트
- spring boot
- Spring
- crud
- MYSQL
- 설정
- Many-To-Many
- Rest
- 설정하기
- XML
- one-to-one
- Validation
- 스프링부트
- 로그인
- 상속
- Security
- login
- 매핑
- form
- jsp
- one-to-many
- Angular
- 스프링
- mapping
- WebMvc