inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링부트 시큐리티 & JWT 강의

JwtAuthorizationFilter에서 오류가 뜹니다.

해결된 질문

433

김은지

작성한 질문수 1

0

안녕하세요.. 저는 spring legacy 로 jwt를 구현했습니다.

로그인 기능까지는 되었는데 인증과정에서 질문이 있습니다.

@Override
	protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		System.out.println("인증이나 권한이 필요한 주소 요청이 됨.");
		
		String header = request.getHeader(JwtProperties.HEADER_STRING);
		System.out.println("jwtHeader : " + header);
		
		// header 유무 확인
		if (header == null || !header.startsWith(JwtProperties.TOKEN_PREFIX)) {
			chain.doFilter(request, response); // 필터를 타겟에 넘겨버리고 리턴
			return;
		}
		
		// JWT 토큰 검증
		String token = request.getHeader(JwtProperties.HEADER_STRING)
				.replace(JwtProperties.TOKEN_PREFIX, "");
		System.out.println(token);
		String username = 
				JWT.require(Algorithm.HMAC256(JwtProperties.SECRET)).build()
				.verify(token).getClaim("username").asString();
		
		System.out.println("토큰 검증 완료");

위의 코드는 JwtAuthorizationFilter에 있는 doFilterInternal 입니다.

header 까지는 잘 들어오는데 알고리즘이 자꾸 맞지 않는다고 합니다.. 포스트맨으로 테스트할 때 login 후 header 값을 복사해 인증이 필요한 페이지에 접근할 때 header에 넣어주었습니다.. 제가 뭘 잘못한 건지 잘 모르겠습니다...ㅠㅠ

spring spring-security jwt

답변 2

0

최주호

혹시 토큰 생성시에 HMAC512 사용한거 아닌가요?

0

김은지

헉 넵... 제가 너무 바보같았네요 ㅜㅜㅜㅜㅜ 토큰 생성시 512를 사용하고 있었습니다 ㅜㅜ.. 감사합니다....!!!!

0

인프런 AI 인턴

안녕하세요 김은지 님, 인프런 AI 인턴이에요.
보내주신 코드와 설명을 토대로 확인해보니, 토큰의 알고리즘이 맞지 않는다는 오류가 발생하는 것으로 보입니다. 이 경우에는 토큰 생성 시 사용한 알고리즘과 검증 시 사용한 알고리즘이 일치해야 합니다.

JwtAuthorizationFilter의 doFilterInternal 메소드에서 사용된 알고리즘 Algorithm.HMAC256(JwtProperties.SECRET)을 확인해보시고, 로그인 시 토큰을 생성하는 부분의 알고리즘이 동일한지 확인해주세요. 알고리즘을 일치시키는 것으로 문제를 해결할 수 있을 것입니다.

또한, 포스트맨으로 테스트할 때 헤더에 토큰을 올바르게 넣어주셨는지도 확인해보세요. 예를 들어, Bearer [토큰값]과 같이 올바른 형식으로 헤더에 토큰을 추가해야 합니다.

문제가 지속되면 추가 정보를 주시면 더 자세한 도움을 드릴 수 있을 것입니다. 감사합니다!

JWT를 구현한 다음 이 API를 호출해서 사용하는 것은 프론트엔드 쪽에서 하는 역할인가요?

0

98

1

Jwt쓰면 스프링시큐리티는 필수적으로 사용해야하나요?

0

401

1

13:23 system.out 출력문이 다르게 나옵니다.

0

130

1

수료증 문의

0

227

2

9분대에 질문이 있습니다 !

0

115

1

password 비교를 하지 않았는데 어떻게 인증이 통과된 건가요?

0

321

1

이전 강의 참고하라는 말씀

0

253

1

강의 실습하다가 막히는 분들 참고(2024년8월 기준)

2

1116

2

구글 소셜 로그인 302

0

201

1

오류 문의 _ org.springframework.orm.jpa.JpaSystemException: could not deserialize

1

585

1

[자바] 시큐리티 Config 참고

13

953

1

이론강의

0

280

1

SpringSecurity JWT 로그인 URL 2개 설정하는 방법

0

488

1

2024.06기준) 최근 SecurityConfig 설정 문의

0

922

3

구글 로그인시 authentication이 null 값이라고 에러가 발생합니다.

0

678

2

특정 url필터 거는 방법 이슈

0

422

1

강사님께서 말씀하시는 시큐리티세션이 SecurityContext인가요?

0

279

1

25강 마지막 테스트에서 오류

1

1044

2

jwt를 저장하는 위치에 궁금한 점이 있습니다.

0

298

1

mustache를 사용하지 않고 thymeleaf를 사용하려고 하는데

0

697

1

세션 인증방식이 REST 원칙에 위배되는 건가요?

0

342

1

jwt와 실제데이터의 관계

1

246

1

jwt 와 세션ID의 관계

1

313

1

SecurityConfig에서 세션 설정, 인가 설정

0

422

1