diff --git a/modules/protocols/protocol-gb32960/src/main/java/com/lingniu/ingest/protocol/gb32960/auth/Gb32960PlatformAuthorizer.java b/modules/protocols/protocol-gb32960/src/main/java/com/lingniu/ingest/protocol/gb32960/auth/Gb32960PlatformAuthorizer.java index 9e78ab20..43d880db 100644 --- a/modules/protocols/protocol-gb32960/src/main/java/com/lingniu/ingest/protocol/gb32960/auth/Gb32960PlatformAuthorizer.java +++ b/modules/protocols/protocol-gb32960/src/main/java/com/lingniu/ingest/protocol/gb32960/auth/Gb32960PlatformAuthorizer.java @@ -4,6 +4,7 @@ import com.lingniu.ingest.protocol.gb32960.config.Gb32960Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -64,6 +65,7 @@ public final class Gb32960PlatformAuthorizer { ? Set.of() : entry.getAllowedIps().stream() .filter(Objects::nonNull) + .flatMap(value -> Arrays.stream(value.split(","))) .map(String::trim) .filter(ip -> !ip.isBlank()) .collect(java.util.stream.Collectors.toSet()); diff --git a/modules/protocols/protocol-gb32960/src/test/java/com/lingniu/ingest/protocol/gb32960/inbound/Gb32960AccessServiceTest.java b/modules/protocols/protocol-gb32960/src/test/java/com/lingniu/ingest/protocol/gb32960/inbound/Gb32960AccessServiceTest.java index f83da589..d6453115 100644 --- a/modules/protocols/protocol-gb32960/src/test/java/com/lingniu/ingest/protocol/gb32960/inbound/Gb32960AccessServiceTest.java +++ b/modules/protocols/protocol-gb32960/src/test/java/com/lingniu/ingest/protocol/gb32960/inbound/Gb32960AccessServiceTest.java @@ -61,6 +61,21 @@ class Gb32960AccessServiceTest { .accepted()).isTrue(); } + @Test + void authenticatePlatformLogin_acceptsCommaSeparatedAllowedIps() { + Gb32960Properties.Auth auth = new Gb32960Properties.Auth(); + Gb32960Properties.Auth.Platform platform = new Gb32960Properties.Auth.Platform(); + platform.setUsername("lingniu"); + platform.setPassword("secret"); + platform.setAllowedIps(List.of("115.29.187.205,127.0.0.1")); + auth.setPlatforms(List.of(platform)); + + Gb32960PlatformAuthorizer authorizer = new Gb32960PlatformAuthorizer(auth.getPlatforms()); + + assertThat(authorizer.authenticate("lingniu", "secret", "127.0.0.1") + .accepted()).isTrue(); + } + private static Gb32960AccessService newService(boolean vinAuthEnabled) { Gb32960Properties.Auth auth = new Gb32960Properties.Auth(); auth.setEnabled(vinAuthEnabled);