SpringBoot
SpringBoot [스프링 부트] Spring Security Basic (1) 프로젝트 생성
SpringBoot [스프링 부트] Spring Security Basic (1) 프로젝트 생성
2022.01.25프로젝트 생성 Intellij Ultimate 버전에서 진행합니다. File -> New -> Project SpringIitializr -> Next 설정 변경 후 Next 디펜던시 추가 후 Next 프로젝트 경로 확인 후 finish하여 프로젝트 생성 라이브러리를 다운로드 하는데 약간의 시간이 걸립니다. Application 실행하기 localhost:8080에 접속했을 때 아래와 같이 뜨면 정상 작동입니다. 앞으로 사용할 프로젝트를 만들었습니다. 다음부터 실습을 시작하겠습니다. 감사합니다. 모든 코드는 아래 링크에서 확인 가능합니다. https://github.com/rlaehdals/secuitybasic GitHub - rlaehdals/secuitybasic Contribute to rlaeh..
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("/")..