diff --git a/src/main/java/org/jetlinks/protocol/official/JetLinksAuthenticator.java b/src/main/java/org/jetlinks/protocol/official/JetLinksAuthenticator.java index 2fc6dce..6b880a0 100644 --- a/src/main/java/org/jetlinks/protocol/official/JetLinksAuthenticator.java +++ b/src/main/java/org/jetlinks/protocol/official/JetLinksAuthenticator.java @@ -3,10 +3,7 @@ package org.jetlinks.protocol.official; import org.apache.commons.codec.digest.DigestUtils; import org.jetlinks.core.Value; import org.jetlinks.core.defaults.Authenticator; -import org.jetlinks.core.device.AuthenticationRequest; -import org.jetlinks.core.device.AuthenticationResponse; -import org.jetlinks.core.device.DeviceOperator; -import org.jetlinks.core.device.MqttAuthenticationRequest; +import org.jetlinks.core.device.*; import reactor.core.publisher.Mono; import javax.annotation.Nonnull; @@ -14,6 +11,15 @@ import java.util.concurrent.TimeUnit; public class JetLinksAuthenticator implements Authenticator { + @Override + public Mono authenticate(@Nonnull AuthenticationRequest request, @Nonnull DeviceRegistry registry) { + MqttAuthenticationRequest mqtt = ((MqttAuthenticationRequest) request); + + return registry + .getDevice(mqtt.getClientId()) + .flatMap(device -> authenticate(request, device)); + } + @Override public Mono authenticate(@Nonnull AuthenticationRequest request, @Nonnull DeviceOperator deviceOperation) { if (request instanceof MqttAuthenticationRequest) {