SpringBoot
SpringBoot [스프링부트] Spring Security JWT 만들기 (1) 끝
SpringBoot [스프링부트] Spring Security JWT 만들기 (1) 끝
2022.01.22JWT란? 토큰 기반 인증 시스템의 대표적인 구현체입니다. Java를 포함한 많은 프로그래밍 언어에서 이를 지원하며, Session 대신에 사용해 사용자를 판별할 수 있습니다. JWT는. 을 기준으로 헤더(header) - 내용(payload) - 서명(signature)으로 이루어져 있습니다. 각각 무슨 역할을 하는지 간단하게 알아보도록 하겠습니다. 1. 헤더(header) Header는 토큰의 타입과 해싱 알고리즘을 지정하는 정보를 포함합니다. typ : JWT라는 문자열 alg: 해상 알고리즘을 지정 2. 정보(payload) 토큰에 담을 정보가 들어갑니다. 총 3가지 종류의 클레임이 있습니다. 등록된(registered) 클레임 토큰에 대한 정보를 담기 위한 클레임들이며, 이미 이름이 등록되어있는..
SpringBoot [스프링부트] Spring Security JWT 만들기(0)
SpringBoot [스프링부트] Spring Security JWT 만들기(0)
2022.01.221. 프로젝트 생성하기 File -> New -> Project SpringInitializr -> Next 설정 사항 변경하고, Next 눌러줍니다. 디펜던시를 추가하고, Next를 눌러줍니다. springBoot version을 2.6.3으로 진행했을 때 Security가 제대로 적용되지 않았습니다. 2.5.4로 변경해서 진행해주세요. 프로젝트를 생성할 위치를 정하고, finish를 눌러 완성해줍니다. 프로젝트가 열리고, 라이브러리를 다운로드하는데 약간의 시간이 소요됩니다. 그 후에 아래 절차를 진행해주시면 됩니다. 2. Build.gradle JWT 라이브러리 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter..
SpringBoot [스프링부트] Spring Security Oauth2 만들기 (5)
SpringBoot [스프링부트] Spring Security Oauth2 만들기 (5)
2022.01.22전 포스팅에서 Oauth2의 기본적인 뼈대는 구성을 했습니다. 이제는 권한이 없는 유저가 접근했을 때 403 에러가 아닌 오류가 뜬 페이지를 보여는 것과 Oauth2 인증이 성공했을 때 Redirection 하는 곳을 직접 지정해보겠습니다. 1. html 추가 denied.html (권한이 없거나 로그인을 하지 않은 유저가 접근했을 때 403에러가 아닌 해당 페이지를 보여줍니다.) Denied Page Username = UserEmail = redirect.html (Oauth2 인증이 성공 했을 때 "/"가 아닌 Redirect를 새로 지정하는 페이지입니다.) Redirect Page Username = UserEmail = 2. CustomAccessDeniedHandler @Component pu..
SpringBoot [스프링부트] Spring Security Oauth2 만들기 (4)
SpringBoot [스프링부트] Spring Security Oauth2 만들기 (4)
2022.01.21이제 SecurityConfig와 LoginController를 만들어보겠습니다. 1. SecurityConfig @RequiredArgsConstructor @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { private final CustomOauth2UserService customOauth2UserService; @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable() .authorizeRequests() // URL에 따른 권한을 관리하는 옵션입니다. .antMatchers("/")..
SpringBoot [스프링부트] Sprig Security Oauth2 만들기(3)
SpringBoot [스프링부트] Sprig Security Oauth2 만들기(3)
2022.01.201. 프로젝트 개요 Oauth2가 어떻게 적용하는지만 확인을 위한 것이므로 간략하게 만들겠습니다. 밑에 조건만 만들겠습니다. User가 로그인 전에 접속할 수 있는 URL User가 로그인 후에만 접속할 수 있는 URL User가 로그인 했지만 ROLE= GUEST일 때는 접근 못하는 URL 1. User Entity @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "user_id") private Long id; @Column(name = "user_email") priv..
SpringBoot [스프링부트] Spring Security Oauth2 만들기(2)
SpringBoot [스프링부트] Spring Security Oauth2 만들기(2)
2022.01.20Google Oauth2를 사용할 예정이므로, 구글 서비스를 먼저 등록하겠습니다. 순서대로 진행하시면 됩니다. 밑에 URL에 들어갑니다. https://console.cloud.google.com/ Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 1. Google Console 등록하기 새 프로젝트를 만들어줍니다. 프로젝트 이름을 설정해줍니다. Ξ -> API 및 서비스 -> 사용자 인증 정보를 눌러줍니다. 사용자 인증 정보 만들기 -> Oauth 클라이언트 ID 동의 화면 구성을 눌러줍니다. 이때 동의 화면은 google 로그인할 때 나오는 약관 동의 화면입니다. 해당..