IT/Spring

[모각코] 스프링 시큐리티와 OAuth 2.0

BronxBomber 2021. 8. 16. 17:15
728x90

오늘은 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기 스터디한 내용을 정리해 보는 포스팅을 가지겠습니다.

 

spring-security-oauth2-autoconfigure

위 라이브러리를 통해 스프링 부트 2환경에서 스프링부트 1.5환경의 설정들을 그대로 사용가능합니다.

 

스프링 부트 1.5방식에서는 url주소를 모두 명시해야 하지만, 스프링부트 2에서는 client인증 정보만 입력해도 된다는 차이점이 있습니다.

 

import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Getter
@NoArgsConstructor
@Entity
public class User extends BaseTimeEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String name;

    @Column(nullable = false)
    private String email;

    @Column
    private String picture;

    @Enumerated(EnumType.STRING)
    @Column(nullable = false)
    private Role role;

    @Builder
    public User(String name, String email, String picture, Role role) {
        this.name = name;
        this.email = email;
        this.picture = picture;
        this.role = role;
    }

    public User update(String name, String picture) {
        this.name = name;
        this.picture = picture;

        return this;
    }

    public String getRoleKey() {
        return this.role.getKey();
    }
}

<실제 실행되지 않는 예시 코드입니다.>

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_이 있어야합니다. 

 

spring-boot-starter-oauth2-client

소셜로그인 기능 구현시 필요한 의존성

 

 

'IT > Spring' 카테고리의 다른 글

[모각코] 모각코를 마무리하며...  (0) 2021.08.27
MongoRepository & MongoTemplate  (0) 2021.08.23
[모각코] Spring JPA  (0) 2021.08.09
[모각코] Spring 외부접속  (0) 2021.07.19
[모각코] Spring 2일차  (0) 2021.07.16