Spring Security

Spring Security

[OAuth] 구글 로그인 및 자동 회원가입 진행 완료

이 정보는 Map 형태로 들어오게 된다. 이 정보를 PrincipalDetails에 넣기 위해 @Data @RequiredArgsConstructor public class PrincipalDetails implements UserDetails, OAuth2User { //일반 로그인 private final User user; //콤포지션 // OAuth 로그인 private final Map attributes; ... // OAuth2User 오버라이딩 @Override public Map getAttributes() { return attributes; } @Override public String getName() { return null; // 사용하지 않을 함수라 null로 두었다. } } ..

Spring Security

[OAuth] Authentication객체가 가질 수 있는 2가지 타입

PrincipalOauth2UserService @Service public class PrincipalOauth2UserService extends DefaultOAuth2UserService { // 로그인 후처리 @Override public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException { System.out.println("userRequest : " + userRequest.getClientRegistration()); // registrationId로 어떤 OAuth로 로그인 했는지 확인 가능 System.out.println("userRequest : " + userRequest...

Spring Security

[OAuth] 구글 회원 프로필 정보 받아보기

SecurityConfig .and() .oauth2Login() .loginPage("/loginForm") .userInfoEndpoint() .userService(null);// 매개변수는 OAuth2UserService 타입인데, 아직 안만들었으니 우선 null로 한다. return http.build(); } package com.cos.security.config.oauth; import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService; import org.springframework.stereotype.Service; @Service public class PrincipalOauth2UserServic..

Spring Security

[OAuth] 구글 로그인 준비

https://console.cloud.google.com/ Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 구글 콘솔로 가서 새 프로젝트를 만든다. 구글 로그인을 하게 되면 구글에서 우리 페이지로 인증 코드를 넘겨준다. 이 코드를 가지고 액세스 토큰을 구글에 요청한다. 그리고 액세스 토큰을 받아서 사용자 대신 우리가 구글로부터 사용자의 정보에 접근할 수 있는 권한이 생긴다. 액세스 토큰을 얻기 위한 인증 코드를 받을 주소가 리디렉션 URI이다. 스프링 시큐리티에서 /login/oauth2/code는 고정된 값이다. (OAuthClient 라이브러리) 생성이 완료되면 클라이언트 ID와 클라이언트 보안 비밀번호가 나온다. 비밀번호는 노출되면 안 ..

Spring Security

[기본] 시큐리티 권한처리

우선 manager와 admin이라는 id로 회원가입을 하자 (id는 굳이 저게 아니어도 된다.) 그리고 권한을 변경해 준다. update user set role = 'ROLE_MANAGER' where id = 2; update user set role = 'ROLE_ADMIN' where id = 3; commit; manager로 로그인을 하자 user와 manager 페이지로 이동이 가능하다. 하지만 admin은 안된다. 이번에는 admin으로 로그인을 하자 user, manager, admin 모두 갈 수 있다. 한 가지 추가하자면 SecurityConfig @Configuration // IoC 빈(bean)을 등록 @EnableMethodSecurity(securedEnabled = tru..

Spring Security

[기본] 시큐리티 로그인

SecurityConfig ... .and() .formLogin().loginPage("/loginForm") .loginProcessingUrl("/login") .defaultSuccessUrl("/"); .loginProcessingUrl("/login") /login 주소가 호출되면 시큐리티가 낚아채서 대신 로그인을 진행해 준다. 따라서 Controller에 login 기능을 따로 만들지 않아도 된다. .defaultSuccessUrl("/"); 로그인이 완료되면 /를 호출하여 index 페이지로 이동하게 한다. loginForm.html ... 로그인 페이지 로그인 ... 시큐리티가 /login 주소 요청이 오면 낚아채서 로그인을 진행시킨다. 로그인 진행이 완료되면 시큐리티 session을 만..

ewok
'Spring Security' 카테고리의 글 목록 (2 Page)