일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- mac hadoop 설정
- 백준 18428
- hive beeline 실행
- 기업 조사 빨리 하는 법
- 이더리움 #ethereum
- hive beeline
- mac hive
- 카카오 자물쇠와 열쇠
- 자소서 너무 오래 걸림
- mac hadoop
- Failed to connect to localhost:10000
- hadoop safe mode
- 자소서 시간 줄이기
- hive beeline 설정
- Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000
- mac hadoop 3
- 자소서 빨리
- Resources are low on NN
- mac hadoop 설치
- 이더리움
- 도커 교과서
- 카카오 2020 코테
- 카카오 2020 코딩테스트
- hive beeline 에러
- hadoop safe mode leave
- Safe mode is ON
- mac hive 3
- 자소서 빨리 쓰는 법
- is not allowed to impersonate hive (state=08S01
- code=0)
- Today
- Total
A seeker after truth
스프링부트 5단원: spring security, OAuth 2.0 login 기능 본문
* 본문은 <스프링부트와 aws로 혼자 구현하는 웹서비스>(2019, 이동욱, 프리렉)을 공부하고 정리한 내용입니다.
1. 스프링 시큐리티와 스프링 시큐리티 Oauth2 클라이언트
- 인증은 애플리케이션 작업을 수행하는 주체(즉, 사용자)라고 주장할 수 있는 것을 의미한다.
- 권한은 인증된 주체가 애플리케이션의 특정 동작의 수행 여부가 허가되어 있는 지를 판단하는 것을 의미한다.
2. 구글 로그인 연동
•먼저 application-oauth.properties 파일을 생성하고 클라이언트 아이디와 클라이언트 보안 비밀 코드를 입력해야 한다.
- 스프링부트에선 application-xxx.properties로 만들면 xxx란 이름의 profile이 생성되어 이를 관리할 수 있다.
profile=xxx 란 식으로 호출하면 해당 properties의 설정들을 가져올 수 있다.
- 호출은 application.properties에 "spring,profiles.include=oauth"란 코드를 추가함으로써 가능해진다.
1) com.mashupspring.domain.user.User
•@GeneratedValue(strategy = GenerationType.IDENTITY)
GeneratedValue는 데이터베이스 테이블 주키 Primary Key를 자동 생성하는 기능이다. 자동 생성 전략을 4개로 지정해 줄 수 있는데 지정해 주지 않으면 기본값은 ‘AUTO’이다.
•@Enumerated(EnumType.STRING)
- JPA로 데이터베이스로 저장할 때 Enum값을 어떤 형태로 저장할지 결정 (디폴트는 숫자)
2) com.mashupspring.domain.user.Role
스프링 시큐리티에선 권한 코드에 항상 ROLE_ 이 앞에 있어야만 한다.
3) com.mashupspring.domain.user.UserRepository
•java.util.Optional
자바 8부터 새로 생긴 클래스. NullPointerException 같은 널 예외를 간단하게 처리할 수 있다.
모든 참조 타입을 파라미터로 받을 수 있고, null 값을 가지는데 콘솔에 노출하지 않게 하거나, null이면 "정보없음" 과 같이 화면에 나타나게 해달라는 요구사항을 처리할 수 있음.
http://tcpschool.com/java/java_stream_optional
•findByEmail
소셜 로그인으로 반환되는 값 중 이메일을 통해 이미 생성된 사용자인지 처음 가입하는 사용자인지 판단하는 메서드
스프링 시큐리티 설정
관련 의존성을 하나 추가하고 시작해야 한다.
compile('org.springframework.boot:spring-boot-starter-oauth2-client')
1) com.mashupspring.config.auth.SecurityConfig
보안 설정 코드
2) com.mashupspring.config.auth.CustomOAuth2UserService
구글 로그인 후 가져온 사용자의 정보(email, name, picture)들을 기반으로 가입, 정보 수정, 세션 저장 등의 기능을 지원
•싱글톤 패턴
전역 변수를 사용하지 않고 객체를 하나만 생성 하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴
https://gmlwjd9405.github.io/2018/07/06/singleton-pattern.html
...이렇게 하다가, 코드를 공부하는 것만으론 이해가 되지 않아 아래와 같이 생성된 파일과 패키지, 상속/구현된 클래스, 추상클래스에 대해 공식 문서를 찾아보며 어떤 기능울 하는지 찾아보며 내용을 이해하려 노력했다.
OAuth에 대한 이해를 하는게 도움된다는 사실을 알게됐다.
https://minwan1.github.io/2018/02/24/2018-02-24-OAuth/
'Springboot' 카테고리의 다른 글
스프링부트 책 4단원: mustache로 화면 구성 (0) | 2020.03.21 |
---|---|
TIL 링크 모음, spring 기준 첨들어보는/비밀 지식 모음 (0) | 2020.03.16 |
스프링부트 책 3단원: spring data JPA 다뤄보기 (0) | 2020.03.07 |
스프링부트 책 2단원: 테스트 코드 (0) | 2020.03.06 |