전체 글
-
Spring Security - 페이스북 로그인Framework & Library/Spring Security 2021. 10. 4. 22:34
API 설정 프로젝트생성 ㆍ 페이스북 개발자 홈페이지에 접속을 한 후 위 사진에 표시된 "내 앱" 버튼을 클릭한다. ㆍ "내 앱"에 접속한 후 "앱 만들기" 버튼을 클릭한다. ㆍ 앱 유형을 "없음"으로 선택한 후 "다음" 버튼을 누른다. ㆍ 표시 이름을 spring-security-basic으로 정한 후 "앱 만들기" 버튼을 클릭한다. ㆍ 앱을 만든 후 Facebook 로그인 "설정" 버튼을 클릭한다. ㆍ 설정에 들어온 뒤 "웹" 버튼을 클릭한다. ㆍ 사이트 URL을 "http://localhost:8080"으로 설정한 후 "Save" 버튼을 눌러 저장한다. ㆍ 설정 카테고리의 "기본 설정" 버튼을 누른 후 앱 ID와 앱 시크릿 코드를 확인하고 프로젝트 생성을 마무리한다. Spring Security 설..
-
Spring Security - 구글 로그인 및 자동 회원가입Framework & Library/Spring Security 2021. 10. 4. 15:00
UserDetails, OAuth2User 타입의 통합 PrincipalDetails 클래스 수정 ㆍ 로그인 사용자의 정보와 OAuth 로그인 사용자의 정보를 받는 타입이 UserDetails, OAuth2User로 서로 다르기 때문에 구현하는데 불편함이 있었다. ㆍ 이러한 불편함을 없애기 위해 두 개의 타입을 처리할 수 있는 클래스가 필요하다. ㆍ 위 사진과 같이 기존의 PrincipalDetails 클래스에 OAuth2User 인터페이스를 추가로 구현한다. ㆍ OAuth 로그인 사용자의 정보를 받기 위해 Map 타입의 변수인 attributes를 선언하고, 생성자를 추가한다. ㆍ OAuth2User 인터페이스를 구현하고 getAttributes() 메서드와 getName() 메서드 위 사진과 같이 오..
-
Spring Security - Authentication 객체가 가질 수 있는 2가지 타입Framework & Library/Spring Security 2021. 10. 3. 15:51
Authentication 객체가 가질 수 있는 2가지 타입 ㆍ 로그인 진행이 완료되면 기존의 Sesson 공간에 Security Session 공간이 만들어진다. ㆍ Security Session에 들어갈 수 있는 정보는 Authentication 객체여야 한다. ㆍ 또한 Authentication 객체가 가질 수 있는 타입은 UserDetails와 OAuth2User 2가지 타입이다. ㆍ UserDetails와 OAuth2User 2가지 타입을 통해서 로그인을 한 사용자의 정보를 얻을 수 있다. 일반 로그인 사용자 정보 받기 IndexController 클래스 수정 @GetMapping("/test/login") @ResponseBody /* 일반 로그인 사용자에 대한 정보 받기 */ public S..
-
Spring Security - 구글 로그인 사용자 정보 받기Framework & Library/Spring Security 2021. 10. 2. 17:34
구글 로그인 후처리 PrincipalOauth2UserService 클래스 생성 @Service public class PrincipalOauth2UserService extends DefaultOAuth2UserService { @Override public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException { return super.loadUser(userRequest); } } ㆍ config 패키지에 oauth 패키지를 생성한 후 패키지 내에 PrincipalOauth2UserService 클래스를 위 코드와 같이 생성한다. ㆍ 해당 클래스는 소셜 로그인에 성공한 후 후속조치를 수행하는 OA..
-
Spring Security - 구글 로그인 준비Framework & Library/Spring Security 2021. 10. 2. 16:16
API 설정 프로젝트 생성 ㆍ 구글 API Console 사이트에 접속을 한 후 위 사진에 표시된 버튼을 클릭한 후 spring-oauth-google이란 프로젝트를 생성한다. OAuth 동의 화면 설정 ㆍ 프로젝트를 생성한 후 위 사진에 표시된 버튼을 클릭한 후 spring-oauth라는 이름으로 OAuth 동의 화면을 설정한다. 사용자 인증 정보 설정 ㆍ 위 사진에 표시된 버튼을 클릭한 후 spring-oauth라는 이름과 "http://localhost:8080/login/oauth2/code/google"의 URI로 사용자 인증 정보를 설정한다. ㆍ "http://localhost:8080/login/oauth2/code/google"는 OAuth Client 라이브러리를 사용하게 되면 고정으로 ..
-
Spring Security - 권한 처리Framework & Library/Spring Security 2021. 10. 1. 16:19
애너테이션을 통한 권한 처리 SpringConfig 클래스 수정 @EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true) ㆍ SpringConfig 클래스에 위 애너테이션을 추가한다. ㆍ 위 애너테이션은 @Secured와 @PreAuthorize 애너테이션을 활성화해주는 역할을 한다. ㆍ 스프링 시큐리티에서는 @Secured와 @PreAuthorize 애너테이션을 통한 권한 처리가 가능한다. IndexController 클래스 수정 @Secured("ROLE_ADMIN") @GetMapping("/info") @ResponseBody public String info() { return "개인정보"; } ㆍ IndexControl..