Spring Security3 비동기 환경에서 Spring Security 로그인 정보를 유지시키는 방법 Spring에서는 비동기 처리를 위해 @Async 어노테이션이나 CompletableFuture를 자주 사용한다. 하지만 비동기적으로 실행되는 코드에서는 SecurityContextHolder에 저장된 인증 정보(Authentication)가 기본적으로 전파되지 않기 때문에 보안 컨텍스트를 유지하는 것이 문제가 될 수 있다. 해당 포스트에서는 이 문제를 해결하는 방법을 예제와 함께 설명한다.왜 비동기 환경에서 SecurityContext가 유지되지 않을까?Spring Security는 현재 스레드에 보안 컨텍스트를 저장한다. 하지만 @Async나 CompletableFuture를 사용하면 새로운 스레드가 생성되어 비동기 작업이 수행된다. 이때, 기본적으로 새로운 스레드에는 원래 스레드의 보안 컨텍스트가 .. 2024. 9. 2. OAuth 2.0 Grant Type OAuth 2.0에서 "Grant Type"이라는 용어는 애플리케이션이 액세스 토큰을 얻는 방식을 나타낸다. OAuth 2.0은 인증 코드 흐름을 포함하여 여러 권한 부여 유형을 정의한다. 권한부여란 클라이언트가 사용자를 대신해서 사용자의 승인하에 인가서버로 부터 권한을 부여받는 것을 의미한다. 1. Authorization Code Grant Type 클라이언트가 사용자를 대신하여 특정 자원에 접근을 요청할 때 사용되는 방식이다. Google, Facebook 및 GitHub와 같은 타사 인증 공급자 또는 자체 OAuth 서버를 사용하여 애플리케이션에 로그인하는 데 사용된다. 리소스 서버에서 보호된 데이터에 접근하기 위해 클라이언트를 인증하고 인증하기 위해 웹에서 사용되는 가장 일반적인 방법이다. 사용.. 2023. 7. 2. Spring Boot 3 환경에서 KeyCloak 적용하기 🤩 배경 스프링 부트 2 버전에서는 Keycloak 클라이언트 어댑터(KeycloakWebSecurityConfigurerAdapter)를 사용하여 애플리케이션에 쉽게 연결해서 사용했다. 하지만 스프링 부트 3부터 일부 클래스, 메서드, 속성 및 어노테이션이 제거되었다. 해당 포스트에서는 스프링 부트 3 환경에서 Spring Security Oauth2와 KeyCloak을 연결해서 사용하는 방법을 공유한다. 1. Dependency 추가 우선, oauth2 resource service 의존성을 추가한다. org.springframework.boot spring-boot-starter-oauth2-resource-server 2. properties 설정 Spring Security에 관련 설정을 추가한.. 2023. 6. 25. 이전 1 다음