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
- Use the built-in Spring Security user service if enabling/disabling users via API is required.
- 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.