Web/Spring(29)
-
[Spring Security] OAuth2 + @AuthenticationPrincipal
진행 중인 프로젝트 상황을 적고 있으므로 해결 방법과 내용이 정확하지 않을 수 있습니다. OAuth2를 통해 성공적으로 로그인을 구현하고 DB에 아이디와 사용자 정보가 insert 되는 것을 확인했지만 그 후에 사용하려고 했더니 추가적으로 문제가 발생하였다. 지금 공통적으로 @AuthenticaionPrincipal을 사용하여 Member 객체에 접근하려고 하는데, OAuth2를 사용하여 로그인을 하려고 하면 null 값이 발생한다. 이러한 상황을 어떻게 확인하게 되었냐면 구글을 통해 로그인을 한 후 장바구니에 접근하려고 했는데 null이면 바로 로그인 창으로 돌아가서 알게 되었다. 예전에 장바구니에 접근할 때, Member id를 조회하는 sout 을 찍은 적이 있어서 확인해보니 null 값 이었다. ..
2022.08.23 -
[Spring Security] OAuth 기본 개념 정리
OAuth란? Open Authorization, Open Authentication 2 인증을 위한 표준 프로토콜의 줄임말. 제 3의 앱이 자원의 소유자인 서비스 이용자를 대신하여 서비스를 요청할 수 있도록 자원 접근 권한을 위임하는 방법. OAuth1과 다르게 OAuth2는 4가지의 Role 있다. - Resource Owner : Resource Server의 계정을 소유하고 있는 사용자 - Resource Server : Access Token을 통해 protected resource 요청을 허용하고 응답한다. (ex 구글, 카카오, github) - Client : resource owner 대신하여 보호 자원 요청을 만들어준다. - Authorization Server : resource ow..
2022.08.20 -
[Spring] Spring Security - OAuth2 사용해보기 (2)
지난 편과 이어진다. https://begintoend.tistory.com/85 [Spring] Spring Security - OAuth2 사용해보기 (1) Spring Security 설정에 더해 Oauth를 이용하여 구글, 네이버, 카카오 계정 로그인 설정을 하려고 한다. 일단 google 계정을 생성하기 위해 https://console.cloud.google.com/ 에 접속한다. 이미 만들어져 있어서.. begintoend.tistory.com OAuth를 통해 소셜 로그인 기능을 사용해보자고 논의를 한 후, OAuth 기능을 추가하다가 전체 오류가 발생해서(^^;;) 브랜치를 아예 새로 팠다... (팀원들에게는 미안함 ㅠ) 그렇게 하고 손을 놓고 있다가 정말 해야할 때가 와서 추가 하였다...
2022.08.14 -
[Spring] Spring Security - OAuth2 사용해보기 (1)
Spring Security 설정에 더해 Oauth를 이용하여 구글, 네이버, 카카오 계정 로그인 설정을 하려고 한다. 일단 google 계정을 생성하기 위해 https://console.cloud.google.com/ 에 접속한다. 이미 만들어져 있어서 없긴 한데 project-** 라고 적혀있는 곳에 프로젝트 새로 만들기가 있는데 클릭하여 프로젝트를 새로 만든다. 프로젝트를 생성하고 나면 아래에 다음과 같은 화면이 있을텐데 API 및 서비스를 클릭한다. 클릭 후 진입하는 화면에서 좌측에 있는 부분에서 사용자 인증 및 정보를 클릭한다. 위쪽에 있는 + 버튼에서 Oauth 클라이언트 아이디 만들기를 클릭한다. 유형은 웹 애플리케이션으로 설정하며 기본적인 URI는 Security에서 기본으로 제공하는 /l..
2022.07.29 -
[Spring] Spring Security 기본 이해 - (5)
목적 : Authorization, FilterSecurityInterceptor, AccessDecisionManager, AccessDecisionVoter 이해 Authorization 지난 번에 확인했던 Authentication과 연결이 된다. GrantedAuthority 객체는 AuthenticationManager를 통해 Authentication에 저장이 되는데 후에 Authorize를 할 대 AuthorizationManager에서 읽는다. 여기서 살펴볼 부분은 GrantedAuthority의 getAuthority 메소드다. String getAuthority(); getAuthority 메소드는 AuthorizationManager가 특정한 String을 얻도록 한다. String을..
2022.07.13 -
[Spring] Spring Security 기본 이해 - (4)
목적 : Authentication 이해 - 핵심 용어 :SpringContextPersistenceFilter, Authentication Flow, AuthenticatioManager, AuthenticationProvider Authentication Flow AuthenticaionManager는 각 provider마다 supports()를 통해 적절한 Authentication provider를 찾는다. 찾았다면 UserDetailsService를 통해 시스템 속에 존재하는 유저가 있는지를 찾는다. UserDetails 인스턴스를 리턴하는데, 어떠한 Authenticaion provider가 verify하고 authenticate 했는지에 대한 정보가 담겨 있다. 성공했다면 Pricipal과 ..
2022.07.10