inflearn logo
강의

Course

Instructor

Spring Boot JWT Tutorial

DTO, Repository, Login

setAuthentication

Resolved

496

H K

93 asked

0

안녕하세요

JwtFilter 에서

StringUtils.hasText(jwt) && tokenProvider.validateToken(jwt)
조건을 만족하면 아래와 같이

SecurityContextHolder.getContext().setAuthentication(authentication);

인증정보를 저장하는데


컨트롤러에서 또 인증정보를 저장하는건가요 ??

정보를 그럼 총 2번 저장하는건가요??
위 JwtFilter 에서 (StringUtils.hasText(jwt) && tokenProvider.validateToken(jwt)) 이조건이 만족했을떄

spring-boot jwt

Answer 1

0

silvernine

안녕하세요!
@PostMapping("/authenticate")의 경우 로그인을 위한 API이기 때문에 permitAll() 설정이 적용되어 있습니다. 이로직에서는 로그인이 정상적으로 수행되었을 때 인증 정보를 컨텍스트에 저장합니다.

이때는 JwtFilter의 doFilter가 수행되지 않습니다.

//SecurityConfig
.authorizeHttpRequests(authorizeHttpRequests -> authorizeHttpRequests
    .requestMatchers("/api/hello", "/api/authenticate", "/api/signup").permitAll()
    .requestMatchers(PathRequest.toH2Console()).permitAll()
    .anyRequest().authenticated()
)

JwtFilter의 doFilter는 permitAll() 설정이 적용되지 않은 다른 호출에서만 적용됩니다.

//SecurityConfig
.with(new JwtSecurityConfig(tokenProvider), customizer -> {});

//JwtSecurityConfig
@Override
public void configure(HttpSecurity http) {
    http.addFilterBefore(
        new JwtFilter(tokenProvider),
        UsernamePasswordAuthenticationFilter.class
    );
}

0

H K


JwtFilter의 doFilter는 permitAll() 설정이 되어있으면 실행되지 않는건 내부적으로 코드가 되어있는거라고 생각하면 될까요 ?

1

silvernine

permitAll()이 적용된 호출은 해당 시큐리티 설정의 영향을 받지 않습니다. 그래서 JwtFilter의 doFilter도 호출되지 않습니다.

spring boot 3.x 버전 강의도 만들어주시면 안될까요?

0

67

1

3강 secret key 관련해서 질문있습니다

0

67

1

JwtFilter 에 TokenProvider 선언 시 final 키워드 빠진 이유

0

76

1

/api/authenticate 포스트맨 401 에러

0

223

1

Spring boot 3.x버전에서 data.sql 오류 발생할 경우

4

399

1

/api/hello 접근 시 401 나올 때 해결법

2

303

2

소스코드 전체 볼수 있을까요?

0

397

2

머이렇게 안되는게많노 ㅠ

1

757

2

스프링부트 3.x 버전 data.sql 삽입 오류 발생할 경우 해결 방법

6

1351

2

postman 결과가 다릅니다

0

355

2

body값이 비었습니다.

0

399

2

jjwt 버전을 올렸더니 jwt가 유효하지 않다고 합니다

0

3594

1

Refresh Token

0

506

1

유저 권한 설정

0

368

2

postman에서 오류가 납니다..

0

1768

3

Spring boot 3.1.5 기준 학습 정리 파일 공유

1

1086

4

/api/hello에 접근이 안됩니다 ㅠㅠ

0

1082

2

mysql 설정로 실습시

0

873

2

유효한 JWT 토큰이 없습니다

0

667

2

8:45 spring security 3.1.5 설정 방법 (버전 안 맞춰서 안될때)

1

2279

2

2:00 에서 저처럼 버전 안 맞춰서 해서 헤매는 분들 이걸로 해보세요.

0

1275

3

JWT String argument cannot be null or empty.

0

2159

2

new User 생성자 오류 발생하는 분들...

6

501

2

requestMatchers 관련 에러 뜨시는 분들 참고하세요

6

2599

3