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);
|
}
|
}
|