Spring/그 외

스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기

ummchicken 2023. 1. 4. 17:05

출처 : 이동욱 개발자님 [스프링 부트와 AWS로 혼자 구현하는 웹서비스]

 

 

책을 보며 따라하기 기록

 

 


 

1. OAuth 동의 화면

책과 좀 다른 부분이 있다.

구글링해보니 
User Type을 '외부'로 체크해야 한다고 함.

 

 


 

2. enum Role

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
public enum Role {

    GUEST("ROLE_GUEST", "손님"),
    USER("ROLE_USER", "일반 사용자");

    private final String key;
    private final String title;
}
→ 스프링 시큐리티에서는 권한 코드에 항상 ROLE_이 앞에 있어야만 한다.

 


 

3. 스프링 시큐리티 설정

책에서는 build.gradle에 compile('org.springframework.boot:spring-boot-starter-oauth2-client') 되어 있지만, 

implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'

이렇게 변경됨.

 

출처 : https://velog.io/@kimsy8979/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8%EC%99%80-AWS%EB%A1%9C-%ED%98%BC%EC%9E%90-%EA%B5%AC%ED%98%84%ED%95%98%EB%8A%94-%EC%9B%B9%EC%84%9C%EB%B9%84%EC%8A%A4-%ED%9B%84%EA%B8%B0-12

 

 


 

4. SQL Error: 42001, SQLState: 42001

🚨 문제

→ 로그인 시도 후 500 에러

 

🚨 에러 이유

1. SQL에서 사용하는 예약어를 사용했을 때 생기는 ERROR

2. User -> 예약어

 

 

💡 해결 방안 

User class에 @Table(name = "Users") 애너테이션을 추가

 

 

출처 : https://velog.io/@kimsy8979/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8%EC%99%80-AWS%EB%A1%9C-%ED%98%BC%EC%9E%90-%EA%B5%AC%ED%98%84%ED%95%98%EB%8A%94-%EC%9B%B9%EC%84%9C%EB%B9%84%EC%8A%A4-%ED%9B%84%EA%B8%B0-12

출처 : https://velog.io/@gwichanlee/JdbcSQLSyntaxErrorException-%ED%95%B4%EA%B2%B0