apolloconfig/apollo · error · UnsupportedOperationException

change user enabled is unsupported

Error message

change user enabled is unsupported

What it means

Thrown by changeUserEnabled when the configured UserService is not SpringSecurityUserService, so local enabled-state changes are unsupported.

Source

Thrown at apollo-portal/src/main/java/com/ctrip/framework/apollo/openapi/v1/controller/UserController.java:132

        ((SpringSecurityUserService) userService).update(user);
      }
    } else {
      throw new UnsupportedOperationException("Create or update user operation is unsupported");
    }
    return ResponseEntity.ok().build();
  }

  @Override
  public ResponseEntity<Void> changeUserEnabled(OpenUserDTO openUserDTO, String operator) {
    boolean consumerRequest = requireUserManagementMutationPermission(operator);
    if (!consumerRequest && !unifiedPermissionValidator.isSuperAdmin()) {
      throw new AccessDeniedException("Change user enabled operation is forbidden");
    }
    UserPO user = OpenApiModelConverters.toUserPO(openUserDTO);
    if (userService instanceof SpringSecurityUserService) {
      ((SpringSecurityUserService) userService).changeEnabled(user);
    } else {
      throw new UnsupportedOperationException("change user enabled is unsupported");
    }
    return ResponseEntity.ok().build();
  }

  private void requirePortalUserRequest() {
    if (!isPortalUserIdentity()) {
      throw new AccessDeniedException("Portal user session is required");
    }
  }

  private void requireUserManagementReadPermission() {
    if (UserIdentityConstants.USER.equals(UserIdentityContextHolder.getAuthType())) {
      return;
    }
    if (UserIdentityConstants.USER_TOKEN.equals(UserIdentityContextHolder.getAuthType())
        && unifiedPermissionValidator.hasManageUsersPermission()) {
      return;
    }

View on GitHub (pinned to d95fc18d11)

Solutions

  1. Use the built-in Spring Security user service if enabling/disabling users via API is required.
  2. If users are managed in an external system (e.g., LDAP), change the enabled state there instead.

When it happens

Trigger: Thrown when the configured user service SPI does not support enabling/disabling users.

Common situations: External user directory (LDAP/SSO) in use, so enabled state cannot be changed from Apollo.


AI-assisted analysis of apolloconfig/apollo@d95fc18d11 (2026-08-14). Data as JSON: /api/errors/ec4f73ba17fc5162. Report an issue: GitHub.