JwtUtilTest.java 871 Bytes
package com.xly.erp.common.security;

import static org.assertj.core.api.Assertions.assertThat;

import org.junit.jupiter.api.Test;

/**
 * REQ-USR-001 T3:JWT 签发 / 解析往返。
 *
 * <p>用 config-vars 的 jwt_secret 签发含 sUserName + sUserType claim 的 token,
 * 解析后能取回相同值且校验通过。</p>
 */
class JwtUtilTest {

    private static final String SECRET =
            "a3b7e8f1c4d6029e5b8f37a1c9d2e4068b5f1d3a7c0e9b2f48d6a1c5e7f9b3d2";

    @Test
    void generateThenParseRoundTrip() {
        JwtUtil jwtUtil = new JwtUtil(SECRET, 43200000L);
        String token = jwtUtil.generateToken("admin", "超级管理员");

        assertThat(jwtUtil.validateToken(token)).isTrue();
        assertThat(jwtUtil.getUserName(token)).isEqualTo("admin");
        assertThat(jwtUtil.getUserType(token)).isEqualTo("超级管理员");
    }
}