浏览代码

feat:增加删除用户凭证

wangbo 2 年之前
父节点
当前提交
81dbb100f3

+ 6 - 3
smsb-customer-manager-adapter/src/main/java/com/inspur/customer/web/controller/keyclaok/KeycloakController.java

@@ -161,11 +161,14 @@ public class KeycloakController {
         return keycloakService.queryUserCredentials(userId);
     }
 
+    @DeleteMapping("/admin/users/{userId}/credentials/{credentialId}")
+    public Response removeUserCredentials(@PathVariable("userId")String userId,
+                                          @PathVariable("credentialId")String credentialId){
+        return keycloakService.removeUserCredentials(userId ,credentialId);
+    }
+
     @PutMapping("/keycloak/users/attribute")
     public Response updateUserAttribute(@RequestHeader String userId , @RequestBody UserRepresentation representation){
-        if(CollectionUtils.isEmpty(representation.getAttributes())){
-            return Response.buildFailure("500","用户属性不能为空!");
-        }
         return keycloakService.updateUser(userId , representation ,Constant.RESET_ATTRBUTE);
     }
 

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

@@ -284,6 +284,7 @@ public class KeycloakServiceImpl implements KeycloakService {
                 break;
             case Constant.RESET_ATTRBUTE:
                 UserRepresentation userRepresentation = (UserRepresentation) representation;
+                user.setEmail(Optional.ofNullable(userRepresentation.getEmail()).orElse(null));
                 user.setAttributes(userRepresentation.getAttributes());
             default:
                 break;
@@ -336,6 +337,11 @@ public class KeycloakServiceImpl implements KeycloakService {
         return SingleResponse.of(realmResource.users().get(userId).credentials());
     }
 
+    @Override
+    public Response removeUserCredentials(String userId , String credentialId) {
+        return SingleResponse.of(realmResource.users().get(userId).credentials().remove(credentialId));
+    }
+
     @Override
     public Response addKeyclaokTenant(GroupRepresentation groupRepresentation) {
         return SingleResponse.of(realmResource.groups().add(groupRepresentation).getDate());

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

@@ -164,6 +164,15 @@ public interface KeycloakService {
      */
     Response queryUserCredentials(String userId);
 
+    /**
+     * 删除用户凭证
+     *
+     * @param userId
+     * @param credentialId
+     * @return
+     */
+    Response removeUserCredentials(String userId ,String credentialId);
+
     /**
      * 新增租户
      *