inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

스프링부트 시큐리티 27강 - jwt토큰 서버 구축 완료

강사님 질문이있습니다 ㅠㅠ

439

진짜 잘하고싶다

작성한 질문수 30

0

public class MyCustomDsl extends AbstractHttpConfigurer<MyCustomDsl, HttpSecurity> {
    @Override
    public void configure(HttpSecurity http) throws Exception {
        System.out.println("체크포인트!@@!@!@!@");
        AuthenticationManager authenticationManager = http.getSharedObject(AuthenticationManager.class);
        http
                .addFilter(new LoginFilter(authenticationManager))
                .addFilterAfter(jwtFilter, UsernamePasswordAuthenticationFilter.class);
    }
}

를 구현하고,

 

로그인이 완료 되었을 때,

 

@Override
    protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult) throws IOException, ServletException {
        log.info("successfulAuthentication 함수 실행: 로그인 성공");
        PrincipalDetails principalDetails = (PrincipalDetails) authResult.getPrincipal();
        /*
        로그인 완료,
        1. 토큰 생성
        2. 쿠키 장착
         */
        response.setHeader("gd", "gdgd");
//        response.sendRedirect("/api/loginTest");
//        super.successfulAuthentication(request, response, chain, authResult);
    }

이 메서드 까지 구현했습니다.

 

제 원래 로직은

액세스 토큰, 리프레쉬 토큰을 생성하고

리프레쉬 토큰을 DB에 담고

액세스 토큰, 레프레쉬 토큰 두 개를 쿠키에 저장하는 로직입니다.

 

 

ResponseCookie build = ResponseCookie
        .from("accessToken", "gd")
        .path("/")
        .httpOnly(true)
        // 시간
        .maxAge(JwtUtil.REFRESH_TOKEN_EXPIRE_TIME)
        .sameSite("Lax")
        .build();
ResponseEntity.ok().header("Set-Cookie", build.toString())
        .body("ok");

대충 쿠키를 생성해서 그 쿠키를 헤더에 담는 방식을 사용 중인데,

 

이렇게 로그인 완료 메서드에서 구현할 방법이 없고 헤더에 저장할 방법이 없어서 너무 막막합니다..

 

Controller에서 그냥 구현하면 ResponseEntity를 이용해서 헤더에 고정적으로 담을 수 있는데

로그인 성공 메서드에서 어떻게 해야 이렇게 똑같이 구현을 할 수 있을까요..ㅠㅠㅜ?

jwt spring-security spring Spring Security

답변 1

0

최주호

HttpServletResponse response 를 컨트롤러의 메서드 매개변수에 담아서 헤더에 담아주시면 됩니다!!

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

0

99

1

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

0

402

1

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

0

132

1

수료증 문의

0

230

2

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

0

117

1

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

0

322

1

이전 강의 참고하라는 말씀

0

253

1

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

2

1119

2

구글 소셜 로그인 302

0

202

1

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

1

586

1

[자바] 시큐리티 Config 참고

13

954

1

이론강의

0

282

1

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

0

490

1

2024.06기준) 최근 SecurityConfig 설정 문의

0

922

3

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

0

681

2

특정 url필터 거는 방법 이슈

0

423

1

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

0

280

1

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

1

1044

2

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

0

299

1

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

0

700

1

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

0

343

1

jwt와 실제데이터의 관계

1

248

1

jwt 와 세션ID의 관계

1

314

1

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

0

424

1