Files
baiyue-firstleg/event-bridge-service/src/test/java/com/baiyue/eventbridge/security/InternalServiceTokenGuardTest.java
T

46 lines
1.7 KiB
Java
Raw Normal View History

2026-07-30 18:01:36 +08:00
package com.baiyue.eventbridge.security;
2026-07-31 16:53:07 +08:00
import org.junit.jupiter.api.DisplayName;
2026-07-30 18:01:36 +08:00
import org.junit.jupiter.api.Test;
2026-08-05 10:35:07 +08:00
import jakarta.annotation.Resource;
import org.junit.jupiter.api.AfterEach;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.test.util.ReflectionTestUtils;
2026-07-30 18:01:36 +08:00
import org.springframework.web.server.ResponseStatusException;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
2026-07-31 16:53:07 +08:00
@DisplayName("内部服务令牌校验")
2026-08-05 10:35:07 +08:00
@SpringJUnitConfig(InternalServiceTokenGuard.class)
@TestPropertySource(properties = "baiyue.security.internal-service-token=a-secure-internal-token")
2026-07-30 18:01:36 +08:00
class InternalServiceTokenGuardTest {
2026-08-05 10:35:07 +08:00
@Resource private InternalServiceTokenGuard guard;
@AfterEach
void resetToken() {
ReflectionTestUtils.setField(guard, "expectedToken", "a-secure-internal-token");
}
2026-07-30 18:01:36 +08:00
@Test
2026-07-31 16:53:07 +08:00
void validTokenAllowsAccess() {
2026-07-30 18:01:36 +08:00
assertThatCode(() -> guard.verify("a-secure-internal-token")).doesNotThrowAnyException();
}
@Test
2026-07-31 16:53:07 +08:00
void unconfiguredTokenDisablesReceiveEndpoint() {
2026-08-05 10:35:07 +08:00
ReflectionTestUtils.setField(guard, "expectedToken", "");
2026-07-30 18:01:36 +08:00
assertThatThrownBy(() -> guard.verify("anything"))
.isInstanceOf(ResponseStatusException.class)
.hasMessageContaining("接口已关闭");
}
@Test
2026-07-31 16:53:07 +08:00
void invalidTokenIsRejected() {
2026-08-05 10:35:07 +08:00
ReflectionTestUtils.setField(guard, "expectedToken", "expected");
2026-07-30 18:01:36 +08:00
assertThatThrownBy(() -> guard.verify("wrong"))
.isInstanceOf(ResponseStatusException.class)
.hasMessageContaining("令牌无效");
}
}