KEYCLOAK-3365 Configure required actions for LDAP in READ_ONLY mode
This commit is contained in:
parent
be19c6b806
commit
79f0703d62
1 changed files with 23 additions and 7 deletions
|
@ -17,7 +17,9 @@
|
||||||
|
|
||||||
package org.keycloak.storage.ldap;
|
package org.keycloak.storage.ldap;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import org.keycloak.models.UserModel;
|
import org.keycloak.models.UserModel;
|
||||||
import org.keycloak.models.utils.UserModelDelegate;
|
import org.keycloak.models.utils.UserModelDelegate;
|
||||||
|
@ -38,36 +40,50 @@ public class ReadonlyLDAPUserModelDelegate extends UserModelDelegate implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setUsername(String username) {
|
public void setUsername(String username) {
|
||||||
throw new ReadOnlyException("Federated storage is not writable");
|
if (!Objects.equals(getUsername(), username)) {
|
||||||
|
throw new ReadOnlyException("Federated storage is not writable");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLastName(String lastName) {
|
public void setLastName(String lastName) {
|
||||||
throw new ReadOnlyException("Federated storage is not writable");
|
if (!Objects.equals(getLastName(), lastName)) {
|
||||||
|
throw new ReadOnlyException("Federated storage is not writable");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setFirstName(String first) {
|
public void setFirstName(String first) {
|
||||||
throw new ReadOnlyException("Federated storage is not writable");
|
if (!Objects.equals(getFirstName(), first)) {
|
||||||
|
throw new ReadOnlyException("Federated storage is not writable");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setEmail(String email) {
|
public void setEmail(String email) {
|
||||||
throw new ReadOnlyException("Federated storage is not writable");
|
if (!Objects.equals(getEmail(), email)) {
|
||||||
|
throw new ReadOnlyException("Federated storage is not writable");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setSingleAttribute(String name, String value) {
|
public void setSingleAttribute(String name, String value) {
|
||||||
throw new ReadOnlyException("Federated storage is not writable");
|
if (!Objects.equals(getAttribute(name), Collections.singletonList(value))) {
|
||||||
|
throw new ReadOnlyException("Federated storage is not writable");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setAttribute(String name, List<String> values) {
|
public void setAttribute(String name, List<String> values) {
|
||||||
throw new ReadOnlyException("Federated storage is not writable");
|
if (!Objects.equals(getAttribute(name), values)) {
|
||||||
|
throw new ReadOnlyException("Federated storage is not writable");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeAttribute(String name) {
|
public void removeAttribute(String name) {
|
||||||
throw new ReadOnlyException("Federated storage is not writable");
|
if (getAttribute(name) != null) {
|
||||||
|
throw new ReadOnlyException("Federated storage is not writable");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue