SpringBoot/spring security
SpringBoot [스프링부트] Spring Security Basic (0)
SpringBoot [스프링부트] Spring Security Basic (0)
2022.01.251. Spring Security란? Spring 기반의 애플리케이션 보안(권한,인증 , 인가 등을) 담당하는 Spring 하위 프레임워크 입니다. Spring Security는 Filter의 흐름에 따라 처리합니다. Interceptor와 Filter로 인증과 권한에 대한 부분을 대부분 처리합니다. Filter의 경우 Dispatcher Servlet으로 가기전에 적용되며, Interceptor는 Dispatcher와 Controller사이에 적영되어, 적용시기가 다르다는 점이 있습니다. Interceptor로도 Security와 같이 동작하게 할 수 있지만 Spring에서는 Security사용을 적극 권장하고 있습니다. 2. 인증과 인가 인증(Authentication): 해당 사용자가 본인이 맞는지..
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..