Browse Source

chore: sso auth

master
wangxiang 2 years ago
parent
commit
6ab9cbe6bf
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 7
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/SecurityConstants.java
  2. 43
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/enums/SsoSystemEnum.java
  3. 29
      kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java
  4. 1
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java

7
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/SecurityConstants.java

@ -1,5 +1,7 @@
package com.cloud.kicc.common.core.constant; package com.cloud.kicc.common.core.constant;
import com.cloud.kicc.common.core.enums.SsoSystemEnum;
/** /**
*<p> *<p>
* 安全常量 * 安全常量
@ -15,6 +17,11 @@ public interface SecurityConstants {
*/ */
String ROLE = "ROLE_"; String ROLE = "ROLE_";
/**
* sso多系统角色权限
*/
String SSO_PERMISSION = SsoSystemEnum.KICC.getName() + ROLE;
/** /**
* 项目的license * 项目的license
*/ */

43
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/enums/SsoSystemEnum.java

@ -0,0 +1,43 @@
package com.cloud.kicc.common.core.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
*<p>
* sso系统枚举
*</p>
*
* @Author: wangxiang4
* @Since: 2023/8/16
*/
@Getter
@RequiredArgsConstructor
public enum SsoSystemEnum {
/**
* sso认证系统
*/
KICC("KICC", "主kicc系统"),
/**
* 子系统1
*/
KICS("KICS", "子系统1"),
/**
* 子系统2
*/
KLAB("KLAB", "子系统2");
/**
* 名称
*/
private final String name;
/**
* 描述
*/
private final String description;
}

29
kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java

@ -1,5 +1,6 @@
package com.cloud.kicc.common.data.entity; package com.cloud.kicc.common.data.entity;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -8,6 +9,8 @@ import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.User;
import java.util.Collection; import java.util.Collection;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/** /**
*<p> *<p>
@ -15,41 +18,44 @@ import java.util.Collection;
*</p> *</p>
* *
* @Author: wangxiang4 * @Author: wangxiang4
* @Date: 2022/2/17 * @Since: 2023/8/16
*/ */
@Getter
@Accessors(chain = true) @Accessors(chain = true)
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class KiccUser extends User { public class KiccUser extends User {
private static final long serialVersionUID = 999L;
/** /**
* 用户ID * 用户ID
*/ */
@Getter private final String id;
private String id;
/** /**
* 部门ID * 部门ID
*/ */
@Getter private final String deptId;
private String deptId;
/** /**
* 手机号 * 手机号
*/ */
@Getter private final String phone;
private String phone;
/** /**
* 用户类型 * 用户类型
* {@link com.cloud.kicc.system.api.enums.UserTypeEnum }
*/ */
@Getter private final String userType;
private String userType;
/**
* 扩展sso多系统角色权限
*/
@Setter
private Map<String, Collection<? extends GrantedAuthority>> ssoPermissions = new ConcurrentHashMap<>(3);
/** /**
* 多租户ID * 多租户ID
*/ */
@Getter
@Setter @Setter
private String tenantId; private String tenantId;
@ -62,6 +68,7 @@ public class KiccUser extends User {
this.phone = phone; this.phone = phone;
this.userType = userType; this.userType = userType;
this.tenantId = tenantId; this.tenantId = tenantId;
this.ssoPermissions.put(SecurityConstants.SSO_PERMISSION, authorities);
} }
} }

1
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java

@ -3,7 +3,6 @@ package com.cloud.kicc.common.security.service.impl;
import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.exception.SecurityCheckedException;
import com.cloud.kicc.common.security.service.KiccUserDetailsService; import com.cloud.kicc.common.security.service.KiccUserDetailsService;
import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.feign.RemoteUserService; import com.cloud.kicc.system.api.feign.RemoteUserService;

Loading…
Cancel
Save