package com.ard.work.sdk.zlxd.netty.message.request; import com.ard.work.api.domian.ArdCamera; import com.ard.work.sdk.zlxd.service.ZlxdLoginEncryptor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import javax.xml.bind.annotation.*; import java.nio.charset.StandardCharsets; import java.util.Base64; /** * 类描述:登录请求 * * @author lsy * @since 2026/2/2 9:14 */ @EqualsAndHashCode(callSuper = true) @Data @NoArgsConstructor @XmlRootElement(name = "Message") @XmlAccessorType(XmlAccessType.FIELD) public class LoginRequest extends BaseXmlRequest { @XmlElement(name = "parameters") private Parameters parameters; @NoArgsConstructor @XmlAccessorType(XmlAccessType.FIELD) public static class Parameters { @XmlElement(name = "UserName") private String userName; @XmlElement(name = "Password") private String password; @XmlElement(name = "clientIp") private String clientIp; public Parameters(String userName, String password, String sessionId, String challenge) { this.userName = Base64.getEncoder().encodeToString(userName.getBytes(StandardCharsets.UTF_8)); this.password = ZlxdLoginEncryptor.encrypt(userName, password, sessionId, challenge); this.clientIp = ""; } } public LoginRequest(ArdCamera ardCamera, String sessionId, String salt, int sequence) { super.setHeader(new Header("LOGGING", sequence, "", "", "")); this.parameters = new Parameters(ardCamera.getUsername(), ardCamera.getPassword(), sessionId, salt); } }