Skip to content

This example demonstrates how to protect an application using Spring Security and OAuth2.

License

Notifications You must be signed in to change notification settings

1chz/spring-security-oauth2-example

Repository files navigation

Spring Security OAuth2 예제

이 저장소는 Spring Security OAuth2 Client 모듈을 사용하여 클라이언트와 서버 간에 인증 및 권한 부여를 설정하는 방법을 보여주는 간단한 예제입니다.

image

요구 사항

  • Java 17 이상
  • Gradle

실행 방법

  1. 저장소를 클론합니다.
git clone https://github.com/olivahn/spring-security-oauth2-example.git
  1. 스프링 시큐리티에서 기본적으로 제공하는 CommonOAuth2Provider는 잘 알려진 IDP인 구글, 깃허브, 페이스북, 옥타의 정보들을 담고있으며, 이 외의 IDP들은 직접 registrationprovider 항목을 작성해주어야 합니다. 본 예제 코드에서는 네이버, 카카오의 정보를 직접 작성해두었으니 application-oauth.yaml를 열으셔서 client-idclient-secret만 직접 입력하거나, 환경변수로 지정하세요. 또한, 예를 들어 애플에 대해 작성하고 테스트하기 싫다면 애플registrationprovider를 주석처리하거나 제거하시면 됩니다. (작성하지도 않고, 주석처리 or 제거또한 하지 않는다면 서버가 기동되지 않습니다.)
spring:
  security:
    oauth2:
      client:
        registration:
          # 아래의 항목들만 하드코딩하거나, 환경변수로 지정합니다. (다른 항목들은 임의로 수정하지 마세요.)
          github:
            client-id: ${GITHUB_CLIENT_ID}
            client-secret: ${GITHUB_CLIENT_SECRET}

          google:
            client-id: ${GOOGLE_CLIENT_ID}
            client-secret: ${GOOGLE_CLIENT_SECRET}

          apple:
            client-id: ${APPLE_CLIENT_ID}
            client-secret: ${APPLE_CLIENT_SECRET}

          naver:
            client-id: ${NAVER_CLIENT_ID}
            client-secret: ${NAVER_CLIENT_SECRET}
            
          kakao:
            client-id: ${KAKAO_CLIENT_ID}
            client-secret: ${KAKAO_CLIENT_SECRET}
  1. 애플리케이션을 빌드하고 실행합니다.
chmod +x ./gradlew && ./gradlew bootRun 
  1. 웹 브라우저에서 http://localhost:8080/ 으로 접속하면 로그인 페이지가 표시됩니다.

image

  1. OAuth2 로그인에 성공하면 액세스 토큰을 포함한 채 http://localhost:3000/tokens을 향해 리디렉션됩니다. 리디렉션 URI를 바꾸고 싶다면, http://localhost:8080/oauth2/authorization/{{ provider }}?redirect_uri={{ redirect_uri }}와 같이 요청하면 됩니다. 예: http://localhost:8080/oauth2/authorization/github?redirect_uri=http://localhost:3000/some_uri

image

API

image

라이선스

MIT 라이선스에 따라 사용할 수 있습니다. 자세한 내용은 LICENSE 파일을 참조하세요.

About

This example demonstrates how to protect an application using Spring Security and OAuth2.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published