refactor: use canonical role codes for ukey signing

This commit is contained in:
waner
2026-03-30 16:35:53 +08:00
parent 7a7503c35e
commit ce5b20d421
7 changed files with 14 additions and 30 deletions
@@ -196,12 +196,12 @@ public class AuthAdminService {
) {
requireKeyAdminFull(operatorRoleCode, operatorAuthLevel);
RoleCode targetRole = resolveRoleCode(targetRoleCode);
String legacyRole = toLegacyRole(targetRole);
String authKeyPair = lmkService.exportIkPublicKeyHex();
UKeySignDTO dto = new UKeySignDTO();
dto.setPubKey(request.getPubKey());
dto.setRole(legacyRole);
// 新卡统一使用规范角色编码,不再兼容旧卡角色字符串。
dto.setRole(targetRole.getCode());
dto.setUid(request.getUid());
dto.setRid(request.getRid());
dto.setExtra(request.getExtra());
@@ -259,7 +259,7 @@ public class AuthAdminService {
try {
UKeySignDTO dto = new UKeySignDTO();
dto.setPubKey(ukeyPubkey);
dto.setRole(toLegacyRole(resolveRoleCode(targetRoleCode)));
dto.setRole(resolveRoleCode(targetRoleCode).getCode());
dto.setUid(uid);
dto.setRid(rid);
String authKeyPair = lmkService.exportIkPublicKeyHex();
@@ -278,13 +278,4 @@ public class AuthAdminService {
throw new IllegalStateException("serialize ukey issue payload failed", ex);
}
}
private String toLegacyRole(RoleCode roleCode) {
return switch (roleCode) {
case SUPER_ADMIN -> "superadmin";
case KEY_ADMIN -> "keyadmin";
case AUDIT_ADMIN -> "auditadmin";
case OPS_ADMIN -> "configadmin";
};
}
}
@@ -378,7 +378,8 @@ public class AuthService {
private String buildIssuePayload(String roleCode, UkeyLoginProof proof, String authKeyPair) {
UKeySignDTO dto = new UKeySignDTO();
dto.setPubKey(proof.getPubKey());
dto.setRole(toLegacyRole(RoleCode.valueOf(roleCode)));
// 新卡统一使用规范角色编码参与签名和验签。
dto.setRole(RoleCode.valueOf(roleCode).getCode());
dto.setUid(proof.getUid());
dto.setRid(proof.getRid());
try {
@@ -388,15 +389,6 @@ public class AuthService {
}
}
private String toLegacyRole(RoleCode roleCode) {
return switch (roleCode) {
case SUPER_ADMIN -> "superadmin";
case KEY_ADMIN -> "keyadmin";
case AUDIT_ADMIN -> "auditadmin";
case OPS_ADMIN -> "configadmin";
};
}
private AuthSessionEntity buildSession(String roleCode, AuthMethod authMethod, AuthLevel authLevel) {
LocalDateTime issuedAt = now();
AuthSessionEntity entity = new AuthSessionEntity();
@@ -18,7 +18,8 @@ public class UKeySignEntity {
*/
private String authKeyPair;
/**
* 登录角色名称,如:superadmin、keyadmin、configadmin、auditadmin
* 参与签名的角色编码。
* 新卡统一使用规范角色编码,如:SUPER_ADMIN、KEY_ADMIN、AUDIT_ADMIN、OPS_ADMIN。
*/
private String role;
/**