코드 그라데이션
JWT 예제 구현 (2) 권한 에러 해결, 데이터베이스 연결 본문
먼저, 앞서 나왔던 401 에러를 해결하기 위한 작업
(시큐리티가 들어가다 보니, 임포트까지 최대한 들어가게 옮기겠다.)
SecurityConfig
package inflearn.freejwt.config;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@EnableWebSecurity // 기본적인 웹 시큐리티 설정을 활성화하겠다.
// 추가적 설정을 위해서 WebSecurityConfigurer 을 implement 하거나
// WebSecurityConfigureAdapter 를 extends 하는 방법이 있다.
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests() // HttpServletRequest를 사용하는 요청들에 대한 접근 제한을 설정하겠다.
.antMatchers("/api/hello").permitAll() // /api/hello 에 대한 요청은 인증 없이 접근을 허용하겠다.
.anyRequest().authenticated(); // 나머지 요청들에 대해서는 인증을 받아야 한다.
// 이렇게 하고 나서 get 요청 보내보면 401 에러 사라짐.
}
}
application.properties -> application.yml
- jpa 관련 설정, 데이터베이스 연결 정보, 로깅 관련 설정
spring:
h2:
console:
enabled: true
datasource:
url: jdbc:h2:mem:testdb
driver-class-name: org.h2.Driver
username: sa
password:
jpa:
database-platform: org.hibernate.dialect.H2Dialect
hibernate:
ddl-auto: create-drop
properties:
hibernate:
format_sql: true
show_sql: true
logging:
level:
inflearn.freejwt: DEBUG
data.sql
INSERT INTO USER (USER_ID, USERNAME, PASSWORD, NICKNAME, ACTIVATED) VALUES (1, 'admin', '$2a$08$lDnHPz7eUkSi6ao14Twuau08mzhWrL4kyZGGU5xfiGALO/Vxd5DOi', 'admin', 1);
INSERT INTO USER (USER_ID, USERNAME, PASSWORD, NICKNAME, ACTIVATED) VALUES (2, 'user', '$2a$08$UkVvwpULis18S19S5pZFn.YHPZt3oaqHZnDwqbCW9pft6uFtkXKDC', 'user', 1);
INSERT INTO AUTHORITY (AUTHORITY_NAME) values ('ROLE_USER');
INSERT INTO AUTHORITY (AUTHORITY_NAME) values ('ROLE_ADMIN');
INSERT INTO USER_AUTHORITY (USER_ID, AUTHORITY_NAME) values (1, 'ROLE_USER');
INSERT INTO USER_AUTHORITY (USER_ID, AUTHORITY_NAME) values (1, 'ROLE_ADMIN');
INSERT INTO USER_AUTHORITY (USER_ID, AUTHORITY_NAME) values (2, 'ROLE_USER');
728x90
'Spring > Security' 카테고리의 다른 글
JWT 예제 구현 (5) 5개의 클래스를 SecurityConfig에 적용 (0) | 2023.12.11 |
---|---|
JWT 예제 구현 (4) JWT 기본 코드 구현 + Security 설정 추가 (1) | 2023.12.11 |
JWT 예제 구현 (3) SecurityConfig 추가, 기본 엔티티 구현 (0) | 2023.12.09 |
JWT 예제 구현 (1) 프로젝트 세팅 (0) | 2023.12.08 |
JWT Tutorial 연습 (0) | 2023.10.27 |
Comments