![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoXiC3%2FbtscApBzXuv%2FKoKxBVYjjaNJgqPMsw6ic1%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : SecurityContextHolder, SecurityContext
2023. 4. 25. 21:57
무조건 따라하기/Spring Boot 기반 Security
SecurityContext • Authentication 객체가 저장되는 보관소로 필요 시 언제든지 Authentication 객체를 꺼내어 쓸 수 있도록 제공되는 클래스 • ThreadLocal 에 저장되어 한 쓰레드 내에서 참조가 가능하다. • 인증이 완료되면 HttpSession 에 저장되어 어플리케이션 전반에 걸쳐 전역적인 참조가 가능하다 SecurityContextHolder SecurityContext을 감싸고 있는 클래스로 SecurityContext를 저장하는 방식이 4가지가 있다. MODE_THREADLOCAL : 스레드당 SecurityContext 객체를 할당, 기본값 MODE_INHERITABLETHREADLOCAL : 메인 스레드와 자식 스레드에 관하여 동일한 SecurityCo..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDX7Iq%2FbtsbRzZlxIA%2Fc8MmiYgRXopNWPa0Bkt5Fk%2Fimg.png)
[JPA] 변경 감지와 병합(Merge)
2023. 4. 22. 22:27
데이터베이스/JPA
준영속 엔티티를 수정하는 2가지 방법 ⭐️준영속 엔티티란? JPA에서 영속성 컨텍스트에서 분리된 엔티티 즉, 영속성 컨텍스트가 더는 관리하지 않는 엔티티를 말한다. 영속성 컨텍스트는 JPA가 엔티티를 관리하는 곳으로, 영속 상태(Persistent)인 엔티티는 영속성 컨텍스트에 저장되어 관리된다. 영속 상태인 엔티티가 영속성 컨텍스트에서 분리되면 준영속 상태(Detached)가 된다. 준영속 상태의 엔티티는 더 이상 영속성 컨텍스트에서 관리되지 않으며, 영속성 컨텍스트에서 분리된 이후에는 엔티티를 수정하더라도 JPA는 이를 인식하지 못한다. 준영속 엔티티를 수정하는 방법은 변경 감지 및 병합 사용하는 방법이 있다. 변경 감지 영속성 컨텍스트에서 엔티티를 다시 조회한 후에 데이터를 수정하는 방법으로 트랜잭..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd4tuaJ%2FbtsbHi87X0m%2FfanDA5xS2JRCpLN7KRKa20%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : 인증 개념 이해 - Authentication
2023. 4. 20. 22:16
무조건 따라하기/Spring Boot 기반 Security
Authentication이란? 스프링 시큐리티에서 Authentication은 사용자의 인증 정보를 나타내는 인터페이스이다. 스프링 시큐리티는 Authentication 객체를 만들고, 이를 보유하고, 인증 정보를 검증하고, 사용자 인증 정보를 유지 관리하고, 사용자 권한을 부여하기 위해 사용된다. 이러한 인증 과정은 보안에 중요한 역할을 한다. 인증 시 id 와 password 를 담고 인증 검증을 위해 전달되어 사용 되며, 인증이 성공하면 사용자는 시스템에 대한 액세스 권한을 부여받고 SecurityContext 에 저장되어 전역적으로 참조가 가능하다 Authentication 인터페이스의 구조는 아래와 같다. principal : 사용자 아이디 혹은 User 객체를 저장 credentials : ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpC6B1%2FbtsbDuJknJP%2FWHNlEb39vnxFsGHEb6pfIK%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : 위임 필터 및 필터 빈 초기화 DelegatingProxyChain, FilterChainProxy
2023. 4. 20. 21:43
무조건 따라하기/Spring Boot 기반 Security
DelegatingProxyChain 이란? DelegatingProxyChain를 간단하게 설명하면 springSecurity는 servletFilter기반으로 보안처리하고 비지니스로직을 수행할 수 있도록 진행된다. 하지만 요청을 받는 servletFilter는 서블릿컨테이너에서 생성되고 실행된다. 즉, 스프링컨테이너에서 생성되고 관리되는 스프링빈에 접근할 수 없다. springSecurity는 스프링빈을 만들고 servletFilter를 구현하고 있기 때문에 요청을 받은 servletFilter가 springSecurityFilterChain 이름으로 생성된 빈을 ApplacationContext에서 찾아서 스프링빈에 요청을 위임할 수 있게 해주는 프록시가 DelegatingProxyChain 이다...