Explorar o código

Merge remote-tracking branch 'origin/84-integrate' into 84-integrate

zengweijie %!s(int64=2) %!d(string=hai) anos
pai
achega
24c03aba6c

+ 20 - 2
smsb-customer-manager-adapter/src/main/java/com/inspur/customer/web/controller/keyclaok/KeycloakUserController.java

@@ -1,5 +1,6 @@
 package com.inspur.customer.web.controller.keyclaok;
 
+import com.alibaba.cola.dto.MultiResponse;
 import com.alibaba.cola.dto.PageResponse;
 import com.alibaba.cola.dto.Response;
 import com.alibaba.cola.dto.SingleResponse;
@@ -12,7 +13,13 @@ import com.inspur.customer.constant.Constant;
 import com.inspur.customer.object.keycloak.KeycloakUserCO;
 import com.inspur.customer.object.keycloak.SwitchDTO;
 import com.inspur.customer.object.keycloak.UsersRoleMappingDTO;
-import com.inspur.customer.object.org.*;
+import com.inspur.customer.object.org.SmsbDepartmentCmd;
+import com.inspur.customer.object.org.SmsbRegrouping;
+import com.inspur.customer.object.org.SmsbSimpleUserCO;
+import com.inspur.customer.object.org.SmsbUserAdd;
+import com.inspur.customer.object.org.SmsbUserExceptionLevelUpdate;
+import com.inspur.customer.object.org.SmsbUserMigration;
+import com.inspur.customer.object.org.SmsbUserUpdate;
 import com.inspur.customer.object.wechat.SubscribeDto;
 import com.inspur.logging.annotation.SmsbMethodLog;
 import com.inspur.logging.annotation.SmsbSysLog;
@@ -35,7 +42,6 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.time.LocalDateTime;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -147,6 +153,18 @@ public class KeycloakUserController {
         return keycloakService.roleMapping(usersRoleMappingDTO);
     }
 
+    @SysLogIgnore
+    @GetMapping("/admin/roles/list")
+    public MultiResponse<RoleRepresentation> getRoles() {
+        return MultiResponse.of(keycloakService.getRoles());
+    }
+
+    @SysLogIgnore
+    @GetMapping("/admin/users/{userId}/roles")
+    public  MultiResponse<RoleRepresentation> getUserRoles(@PathVariable("userId")String userId) {
+        return MultiResponse.of(keycloakService.getUserRoles(userId));
+    }
+
     private List<String> getRoleNameList(List<RoleRepresentation> roleRepList){
         return roleRepList.stream().map(RoleRepresentation::getDescription).collect(Collectors.toList());
     }

+ 18 - 2
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/keycloak/KeycloakServiceImpl.java

@@ -16,8 +16,16 @@ import com.inspur.customer.object.wechat.Pair;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.apache.dubbo.config.annotation.DubboService;
-import org.keycloak.admin.client.resource.*;
-import org.keycloak.representations.idm.*;
+import org.keycloak.admin.client.resource.GroupResource;
+import org.keycloak.admin.client.resource.GroupsResource;
+import org.keycloak.admin.client.resource.RealmResource;
+import org.keycloak.admin.client.resource.RoleScopeResource;
+import org.keycloak.admin.client.resource.UserResource;
+import org.keycloak.representations.idm.ClientRepresentation;
+import org.keycloak.representations.idm.CredentialRepresentation;
+import org.keycloak.representations.idm.GroupRepresentation;
+import org.keycloak.representations.idm.RoleRepresentation;
+import org.keycloak.representations.idm.UserRepresentation;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.util.CollectionUtils;
@@ -384,6 +392,14 @@ public class KeycloakServiceImpl implements KeycloakService {
         return groupIds;
     }
 
+    public  List<RoleRepresentation> getRoles() {
+        return realmResource.roles().list();
+    }
+
+    public  List<RoleRepresentation> getUserRoles(String userId) {
+        return realmResource.users().get(userId).roles().getAll().getRealmMappings();
+    }
+
     @Override
     public Response roleMapping(UsersRoleMappingDTO usersRoleMappingDTO) {
         RoleScopeResource roleScopeResource = realmResource.users().get(usersRoleMappingDTO.getUserId()).roles().realmLevel();

+ 5 - 0
smsb-customer-manager-client/src/main/java/com/inspur/customer/client/keycloak/KeycloakService.java

@@ -9,6 +9,7 @@ import com.inspur.customer.object.org.SmsbDepartmentCmd;
 import com.inspur.customer.object.org.SmsbUserAdd;
 import com.inspur.customer.object.wechat.Pair;
 import org.keycloak.representations.idm.GroupRepresentation;
+import org.keycloak.representations.idm.RoleRepresentation;
 import org.keycloak.representations.idm.UserRepresentation;
 
 import java.util.List;
@@ -155,6 +156,10 @@ public interface KeycloakService {
      */
     Response roleMapping(UsersRoleMappingDTO ssersRoleMappingDTO);
 
+    List<RoleRepresentation> getRoles();
+
+    List<RoleRepresentation> getUserRoles(String userId) ;
+
     /**
      * 获取用户凭证
      *

+ 0 - 1
smsb-customer-manager-client/src/main/java/com/inspur/customer/object/org/SmsbUserAdd.java

@@ -48,7 +48,6 @@ public class SmsbUserAdd extends OperationAuthority {
     /**
      * 权证
      */
-    @NotNull(message = "credentials不能为空")
     private List<CredentialRepresentation> credentials;
 
     private Integer informLevel;