50 lines
3.0 KiB
Java
50 lines
3.0 KiB
Java
package com.baiyue.common.security;
|
|
|
|
import java.security.Principal;
|
|
import java.util.Set;
|
|
|
|
/**
|
|
* 统一认证用户主体,携带用户、租户、成员身份、应用端、客户端类型及权限信息。
|
|
*/
|
|
public record AuthenticatedUser(Long userId, Long tenantId, Long operatorTenantId, Long membershipId,
|
|
String username, String displayName, String appCode, String clientType,
|
|
Set<String> permissions, boolean impersonated, Long actorUserId,
|
|
Long actorMembershipId, boolean passwordChangeRequired,
|
|
Long overseasWarehouseId) implements Principal {
|
|
public AuthenticatedUser(Long userId, Long tenantId, Long operatorTenantId, Long membershipId,
|
|
String username, String appCode, String clientType, Set<String> permissions) {
|
|
this(userId, tenantId, operatorTenantId, membershipId, username, null, appCode, clientType,
|
|
permissions, false, null, null, false, null);
|
|
}
|
|
public AuthenticatedUser(Long userId, Long tenantId, Long operatorTenantId, Long membershipId,
|
|
String username, String appCode, String clientType, Set<String> permissions,
|
|
boolean impersonated, Long actorUserId, Long actorMembershipId,
|
|
boolean passwordChangeRequired) {
|
|
this(userId, tenantId, operatorTenantId, membershipId, username, null, appCode, clientType,
|
|
permissions, impersonated, actorUserId, actorMembershipId, passwordChangeRequired, null);
|
|
}
|
|
public AuthenticatedUser(Long userId, Long tenantId, Long operatorTenantId, Long membershipId,
|
|
String username, String displayName, String appCode, String clientType,
|
|
Set<String> permissions, boolean impersonated, Long actorUserId,
|
|
Long actorMembershipId, boolean passwordChangeRequired) {
|
|
this(userId, tenantId, operatorTenantId, membershipId, username, displayName, appCode, clientType,
|
|
permissions, impersonated, actorUserId, actorMembershipId, passwordChangeRequired, null);
|
|
}
|
|
public AuthenticatedUser(Long userId, Long tenantId, Long operatorTenantId, Long membershipId,
|
|
String username, String appCode, String clientType, Set<String> permissions,
|
|
boolean impersonated, Long actorUserId, Long actorMembershipId,
|
|
boolean passwordChangeRequired, Long overseasWarehouseId) {
|
|
this(userId, tenantId, operatorTenantId, membershipId, username, null, appCode, clientType,
|
|
permissions, impersonated, actorUserId, actorMembershipId, passwordChangeRequired,
|
|
overseasWarehouseId);
|
|
}
|
|
public AuthenticatedUser {
|
|
permissions = permissions == null ? Set.of() : Set.copyOf(permissions);
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return username;
|
|
}
|
|
}
|