[SpringBoot]/[Spring 강의]
[Spring 강의 작성] JWT 토큰 인증방식 적용하기 - 1
Hevton
2023. 1. 5. 18:39
반응형
이 글에서는 JWT 토큰 인증을 사용하는 실습을 설명한다.
dependency를 먼저 추가한다.
implementation 'org.springframework.boot:spring-boot-starter-security'
testImplementation 'org.springframework.security:spring-security-test'
그리고 프로젝트를 실행하기만 해도,
localhost:8080 내의 어느 경로로 이동을 해도 다음과 같은
localhost:8080/login 으로 리다이렉션 되면서 로그인을 하라고 한다.
재미있는 현상이다. Rest Client로 실행해보면 401 Unauthorized 가 반환된다. 권한이 없다는 것.
설정을 진행해보자.
config 패키지를 생성하여 SecurityConfig를 생성한다.
SecurityConfig.java
package io.spring.hevton.Team.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.SecurityFilterChain;
@EnableWebSecurity
@EnableMethodSecurity
@Configuration
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http
.csrf().disable()
/**401, 403 Exception 핸들링 */
.exceptionHandling()
/**세션 사용하지 않음*/
.and()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
/** HttpServletRequest를 사용하는 요청들에 대한 접근 제한 설정*/
.and()
.authorizeRequests()
.antMatchers("/hello").permitAll()
.anyRequest().authenticated()
.and().build();
}
}
이렇게 하면,
localhost:8080/hello에 대한 접근은 허용하고
나머지 접근에 대해서는 권한설정이 필요하다는 금지 설정을 해놓았다.
antMatchers("/hello").permitAll() => /hello는 모든 접근 허용
.anyRequest().authenticated() => 그 이외 나머지는 권한 필요
서버를 실행해서
localhost:8080/hello 에 대해서는 접근이 가능하지만
나머지 모든 접근은 불가능한 상태인 것을 확인할 수 있다.
다음 글에서 이어서 작성한다!!
반응형