JinhwanB / dividendpj

스프링 부트와 java를 사용한 배당금 프로젝트
0 stars 0 forks source link

jwt 토큰 생성 시 java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter #2

Closed JinhwanB closed 6 months ago

JinhwanB commented 6 months ago

로그인 시 jwt 토큰을 생성하고 발급받는 로직에서 위와 같은 오류가 발생했다.

public String generateToken(String userName, List<String> roles) {
        Claims claims = Jwts.claims().setSubject(userName);
        claims.put(KEY_ROLES, roles);

        Date now = new Date();
        Date expireDate = new Date(now.getTime() + TOKEN_EXPIRE_TIME);

        return Jwts.builder()
                .setClaims(claims)
                .setIssuedAt(now) // 토큰 생성 시간
                .setExpiration(expireDate) // 토큰 만료 시간
                .signWith(SignatureAlgorithm.HS512, secret) // 사용할 암호화 알고리즘, 비밀키
                .compact();
    }
JinhwanB commented 6 months ago
implementation 'io.jsonwebtoken:jjwt:0.9.1'

build.gradle에 위 의존성만 있으면 정상 작동할 줄 알았지만 더 추가해줘야하는 의존성이 있었다.

implementation 'com.sun.xml.bind:jaxb-impl:4.0.1'
implementation 'com.sun.xml.bind:jaxb-core:4.0.1'
implementation 'javax.xml.bind:jaxb-api:2.4.0-b180830.0359'

추가 후 실행하니 정상적으로 토큰이 발급되는 것 확인