본문 바로가기

반응형

Backend/Spring | SpringBoot

(51)
[Oauth2] 구글 OAuth2 연동(클라이언트 ID/PW발급) 카카오 OAuth2 연동을 할때와 마찬가지로 해당 서비스에 등록을 먼저 해주어야 한다. https://console.cloud.google.com/projectselector2/home/dashboard?hl=ko&supportedpurview=project Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com 먼저 클라우드 플랫폼에 프로젝트를 생성해야 한다.서비스 이용관련 동의를 진행해야 한다. 무료 계정으로 하더라도 일반계정으로 활성화 하기 전까지 자동결제가 되거나 하지는 않으니 안심하고 진행해도 된다고 한다.     이후에 테스트 사용자를 추가하고 저장한 동의 화면을 요약해서 보여주는데 스킵하겠다.    클라이언트 OAuth ID를 저장하고 나면 ..
[Spring Security] Exception Handler 보안문자를 추가하면서 보안문자 검증에 실패하면 Exception을 던져서 Hanlder에서 처리하게 하려고 했다. 하지만 예외는 던지는데 그대로 Break로 처리하고 Handler에서 처리하지 않고있었다. 사용 코드 : ⬇️더보기@RequiredArgsConstructor@EnableMethodSecurity@Configuration@Slf4jpublic class SpringSecurityConfig2{ ... @Bean public AuthenticationSuccessHandler customSuccessHandler() { return new CustomLoginSuccessHandler2(cookieUtil, jwtTokenizer2); } @Bean public Auth..
[Oauth2] Implicit Grant vs Authorization Code Grant Oauth2를 연동할때 Implicit 방식과 Authorization Code방식이 있다.그 두 방식에 대해 알아보려고 한다. Implicit 방식개요주로 클라이언트 측 애플리케이션(예: 자바스크립트 앱)에서 사용인증 과정이 간단하고, 액세스 토큰을 직접 받음액세스 토큰이 URL 해시 프래그먼트에 포함되어 클라이언트에 전달동작 과정사용자가 클라이언트 애플리케이션에 로그인 요청클라이언트 애플리케이션은 사용자에게 권한 부여 서버(Authorization Server)로 리디렉션사용자는 권한 부여 서버에서 로그인하고, 요청된 권한을 승인권한 부여 서버는 액세스 토큰을 URL 해시 프래그먼트로 클라이언트 애플리케이션에 전달클라이언트 애플리케이션은 액세스 토큰을 추출하여 API 서버에 요청을 보낼 때 사용장점인..
[OAuth2] 회고4 Q1. Provider에서 parsing이 정상적으로 이루어 지지 않은것 같다.ResponseDto를 만들어주어 우회해서 parsing시켜주었다.➡️ accessToken을 정상적으로 가져온다. Q2. Oauth2를 팝업에서 진행하고 완료시 팝업창 닫고 메인창을 reidrect시키려고 한다.➡️Contoller에서 Redirect에 이용할 중간 페이지를 호출하게 한다.... @RequestMapping(value = "/oauthRedirect") public String oauth2LoginProcess() { String returnPage = "web/common/oauthRedirect"; return returnPage; }... 중간 페이지에서 parameter를 이용해 red..
[TIL] 회고 1 1. 파일 업로드 및 미리보기를 구현하면서 정적자원관리 => 별도로 (왜냐하면 보안은 중요하니까)그래서 MVC에서 별도로 ResourceHandler속에 넣어줌// application.yml에서 path정보 등록path: upload: dev: /home/download/data/upload/img/ real: upload/img download: /home/download/data/ config: file:/home/download/data/upload/// WebMvcConfiguration에서 관리...@Value("${path.config}")private String pathConfig; ...@Overridepublic void addResourceHandlers(Resour..
[OAuth2] 회고3 Q1. 아직 나아가지 못하는 중이다. Provider확인에 있어서 실패를 하는 것 같다. OAuth2AuthorizationRequestRedirectFilter까지 동작하고 JwtAuthenticationFilter2필터에서 AbstractAuthenticationProcessingFilter를 동작하는 부분에서 실패한다고 확인하였다. Debugging하면서 문제를 찾아보았다.// attemptAuthentication Method...OAuth2LoginAuthenticationToken authenticationResult = (OAuth2LoginAuthenticationToken)this.getAuthenticationManager().authenticate(authenticationReques..
[Oauth2] 회고2 Q1 JwtFilter에서 Provider구분을 하려고 했으나 실패➡️ 그럴 수 밖에 없었다. 애초에 동작하는 시점이 jwtFilter보다 늦게 시작했다.그렇기에 authenticationManager를 상속받아 custom하고 Provider동작하게 했어야 했다.  Q2 하지만 해결되지 않아 Debug기록 뒤지는 중....
[Oauth2] 회고 1 Q1. OAuth2 제공자에서 사용자를 식별하고 Spring Security Config에서 filterChain에 지정한 .loginPage로 redirect가 됨➡️ 사용자 인증에 실패했기 때문에 따로 FailureHandler를 설정하지 않으면 로그인 페이지로 돌아감 Q2. Handler가 실행되기 전에 error가 발생➡️ 인증의 단계조차 가기 전에 실패했음을 의미(1) → .loginPage()(2) → /oauth2/authorization/{provider}(3) → oauth.yml의 provider의 authorization-uri(4) → oauth.yml의 registration의 redirect-uri (5) → userDetailService(6) → userDetailServic..

반응형