Spring

    [ Spring Authorization Server ] 일반 Request로 client id가져오기

    - OAuth2 Authorization Server에서는 Redirection을 통해 주고받은 데이터 ( clientId, nonce, redirect_uri, response_type, scope, state )의 정보를 SavedRequest에 저장한다. /** * Redirect로 주고받은 데이터 中 client id 가져오기 * - OAuth2 Authorization Server에서는 clientId, nonce, redirect_uri, response_type, scope, state를 SavedRequest에 저장한다. * * @param request * @param response * @return * @author ys5318.kim * @since 22.07.29 */ privat..

    [ Spring Authorization Server ] Access Token ( JWT ) 확장하기

    spring-authorization-server 에서 custom claim 추가하기 @Bean public OAuth2TokenCustomizer customizer() { return context -> { if (context.getTokenType() == OAuth2TokenType.ACCESS_TOKEN) { OAuth2Authorization oAuth2Authorization = context.getAuthorization(); if (oAuth2Authorization != null) { OAuth2AuthorizationRequest authorizationRequest = oAuth2Authorization.getAttribute(OAuth2AuthorizationRequest.cl..

    OAuth2 Grant 타입

    애플리케이션 ( client application ) : 여기서 클라이언트의 서버를 뜻함. OAuth2 서비스 : 여기서 인증 서버를 뜻함 서비스 : 여기서 OAuth2를 통해 접근 가능한 서비스를 뜻함. 자격증명 ( credential ) : 로그인 정보 ( id, password )등 개인 신상과 관련해 암호화한 정보 패스워드 그랜트 가장 직관적인 그랜트 타입 애플리케이션과 서비스가 서로를 명백하게 신뢰하는 경우에 사용 애플리케이션이 자격증명을 받아 직접 OAuth2 서비스에서 인증 AccessToken을 받기위한 구성요소 : 애플케이션 이름, 시크릿 키, 자격증명 ( credential ) 클라이언트 그랜트 사용자가 없고, 동일한 회사가 두 애플리케이션을 소유할 때 사용 예를 들면, 로그/데이터 분..

    [ Spring Boot ] JWT를 이용한 OAuth2 설정

    OAuth2 구성요소 Authorization Server ( 권한 서버 ) Client를 등록하고, 권한을 관리해주는 서버 인증과정 (Authorized Grant Types) , 토큰 방식을 정의 Access Token, Refresh Token 을 발급/재발급 Resource Server OAuth2 서비스를 제공하고 자원을 관리하는 서버 들어오는 OAuth2 토큰 ( Access Token ) 을 통해 자원 ( URL 경로 및 Resource ID ) 요청을 필터링 Client API 서비스 ( Resoruce Server가 제공 )를 이용하는 어플리케이션 또는 서비스 Access Token Authorization Server로 부터 발급 받은 인증 토큰 Resource Server에 전달하여 ..

    [ Intellij ] lombok이 적용되지 않을 때

    Error Message java: You aren't using a compiler supported by lombok, so lombok will not work and has been disabled. Your processor is: com.sun.proxy.$Proxy24 Lombok supports: sun/apple javac 1.6, ECJ Solution - VM옵션으로 -Djps.track.ap.dependencies=false 값을 추가해준다. File > Setting Build, Execution, Deployment -> Compiler -> Shared build process VM options https://i.stack.imgur.com/gIuX8.png Discuss h..

    [ Maven ] dependency 수동으로 설치하기

    mvn install:install-file \ -Dfile=plugins/spring-boot-maven-plugin-2.5.5.jar \ -DgroupId=org.springframework.boot \ -DartifactId=spring-boot-maven-plugin \ -Dversion=1 \ Dpackaging=jar org.springframework.boot spring-boot-maven-plugin 1

    MappedInterceptor를 이용한 Interceptor 등록

    CelloInterceptor파일에는 httpRequest에 개입하기위해 HandlerInterceptor 인터페이스를 상속받아 preHandler와 postHandler를 override한 메소드들이 있습니다. public class CelloInterceptor implements HandlerInterceptor { @Override public boolean preHandle( HttpServletRequest request, HttpServletResponse response, Object handler ) throws Exception { } @Override public void postHandle( HttpServletRequest request, HttpServletResponse res..

    IoC 와 DI

    Spring Framework에서는 클래스의 인스턴스를 매번 생성하지 않고, 재사용 할 수 있는 것이 특징입니다. 이러한 방식을 IoC ( Inversion Of Control )이라고 합니다. 직역하자면 "제어의 역전" 정도이지만, 사실 "제어의 역전"이라고 듣고 이해하기란 쉽지 않습니다. 나름대로의 뜻 풀이를 해보자면, Inversion은 일반적으론 영어 문법에서 도치법이라는 뜻으로 쓰입니다. 도치법이란 문장을 뒤바꿔서 말하는 방식으로 "나랑 평생동안 같이 살자" 를 "나랑 살자 평생동안 같이" 로 순서를 바꾸는 문법입니다. Control은 아마도 인스턴스를 제어 한다는 의미로 쓰였을 것입니다. 고로 다시 의미를 합치자면 "인스턴스를 제어하는 순서를 바꾸는 방식" 정도로 해석될 수 있는 것 같습니다...