설치 라이브러리
- lombok
- security
- spring-web
- jpa
- h2
- validation
@EnableMethodSecurity
: 기본적인 Web 보안 활성화 기능@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests() // httpservletrequest 사용하는 요청에 접근 제한 설정하겠다는 의미
.requestMatchers(new AntPathRequestMatcher("/**")).permitAll()
.and()
.csrf().ignoringRequestMatchers(
new AntPathRequestMatcher("/h2-console/**"))
.and()
.headers()
.addHeaderWriter(new XFrameOptionsHeaderWriter(
XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN))
;
return http.build();
hibernate
: JPA 구현체create-drop
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:
com.example: DEBUG
jwt:
header: Authorization
secret: c2lsdmVybmluZS10ZWNoLXNwcmluZy1ib290LWp3dC10dXRvcmlhbC1zZWNyZXQtc2lsdmVybmluZS10ZWNoLXNwcmluZy1ib290LWp3dC10dXRvcmlhbC1zZWNyZXQK
token-validity-in-seconds: 86400
implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.5'
InitializingBean
을 implements 한 후 afterPropertiesSet
을 오버라이드 Authentication
객체의 권한 정보 이용해 토큰 생성GenericFilterBean
extends 후 doFilter 오버라이드doFilter
는 토큰의 인증정보를 SecurityContext에 저장하는 역할SecurityConfigurerAdapter
을 extends 후TokenProvider
주입받아Security 설정 추가 중 에러 발생 -> 내일 해결 후 꼭 정리