perf(X-Pack): 本地用户登录 MFA 二次校验

This commit is contained in:
fit2cloud-chenyw 2024-12-09 11:38:43 +08:00
parent 3fa3e404bb
commit 6f9728d15b
8 changed files with 50 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

@ -1 +1 @@
Subproject commit d3b0867dda8112d038fc4aec5845391ffc2202eb
Subproject commit cac37fbedde6e095a2c0b52326336a969e102b24

View File

@ -3,7 +3,9 @@ package io.dataease.api.permissions.login.api;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.api.permissions.login.dto.MfaLoginDTO;
import io.dataease.api.permissions.login.dto.PwdLoginDTO;
import io.dataease.api.permissions.login.vo.MfaQrVO;
import io.dataease.auth.vo.TokenVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -45,4 +47,10 @@ public interface LoginApi {
@GetMapping("/logout")
void logout();
@PostMapping("/mfa/qr/{id}")
MfaQrVO mfaQr(@PathVariable("id") Long id);
@PostMapping("/mfa/login")
TokenVO mfaLogin(@RequestBody MfaLoginDTO dto);
}

View File

@ -0,0 +1,18 @@
package io.dataease.api.permissions.login.dto;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
@Data
public class MfaLoginDTO implements Serializable {
@Serial
private static final long serialVersionUID = -8218773323394184937L;
private Long id;
private String code;
private String key;
}

View File

@ -0,0 +1,16 @@
package io.dataease.api.permissions.login.vo;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
@Data
public class MfaQrVO implements Serializable {
@Serial
private static final long serialVersionUID = -3465640829593927730L;
private String img;
private String key;
}

View File

@ -1,5 +1,7 @@
package io.dataease.auth.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serial;
@ -13,4 +15,7 @@ public class MfaItem implements Serializable {
private boolean enabled;
private boolean ready;
@JsonSerialize(using= ToStringSerializer.class)
private Long uid;
}

View File

@ -78,6 +78,8 @@ public class WhitelistUtils {
|| StringUtils.startsWithAny(requestURI, "/websocket")
|| StringUtils.startsWithAny(requestURI, "/map/")
|| StringUtils.startsWithAny(requestURI, "/oauth2/")
|| StringUtils.startsWithAny(requestURI, "/mfa/qr/")
|| StringUtils.startsWithAny(requestURI, "/mfa/login")
|| StringUtils.startsWithAny(requestURI, "/typeface/download")
|| StringUtils.startsWithAny(requestURI, "/typeface/defaultFont")
|| StringUtils.startsWithAny(requestURI, "/typeface/listFont")