liujie
2026-09-09 39f6fca28e3f78abe48f08e474ec011abb990b36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.tourguide.security;
 
import com.tourguide.config.properties.JwtProperties;
import com.tourguide.modules.user.domain.ClientType;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
 
/** 验证三端 Token 的 clientType 声明不会混淆。 */
class JwtTokenServiceTest {
    private final JwtTokenService tokenService = createTokenService();
 
    @Test
    void shouldKeepClientTypeInToken() {
        assertThat(tokenService.parse(tokenService.createToken(1L, "admin", "ADMIN", ClientType.ADMIN)).getClientType()).isEqualTo(ClientType.ADMIN);
        assertThat(tokenService.parse(tokenService.createToken(2L, "mini", "MINI_USER", ClientType.MINI)).getClientType()).isEqualTo(ClientType.MINI);
        assertThat(tokenService.parse(tokenService.createToken(3L, "guide", "GUIDE_USER", ClientType.GUIDE)).getClientType()).isEqualTo(ClientType.GUIDE);
    }
 
    private JwtTokenService createTokenService() {
        JwtProperties properties = new JwtProperties();
        properties.setIssuer("tourguide-test");
        properties.setSecret("tourguide-test-secret-key-at-least-32-bytes");
        properties.setExpirationSeconds(3600);
        return new JwtTokenService(properties);
    }
}