Skip to content
Snippets Groups Projects
Commit 54a2f101 authored by Brendan Le Ny's avatar Brendan Le Ny Committed by Alex Morel
Browse files

Factorize URI creations

parent ad60363c
No related branches found
No related tags found
1 merge request!3Sonar refactoring
...@@ -207,13 +207,17 @@ public abstract class AbstractScimService<RMM extends RoleMapperModel, S extends ...@@ -207,13 +207,17 @@ public abstract class AbstractScimService<RMM extends RoleMapperModel, S extends
protected Meta newMetaLocation(EntityOnRemoteScimId externalId) { protected Meta newMetaLocation(EntityOnRemoteScimId externalId) {
Meta meta = new Meta(); Meta meta = new Meta();
URI uri = getUri(type, externalId);
meta.setLocation(uri.toString());
return meta;
}
protected URI getUri(ScimResourceType type, EntityOnRemoteScimId externalId) {
try { try {
URI uri = new URI("%ss/%s".formatted(type, externalId.asString())); return new URI("%s/%s".formatted(type.getEndpoint(), externalId.asString()));
meta.setLocation(uri.toString());
} catch (URISyntaxException e) { } catch (URISyntaxException e) {
LOGGER.warn(e); throw new IllegalStateException("should never occur: can not format URI for type %s and id %s".formatted(type, externalId) , e);
} }
return meta;
} }
protected KeycloakDao getKeycloakDao() { protected KeycloakDao getKeycloakDao() {
......
...@@ -13,7 +13,6 @@ import org.keycloak.models.UserModel; ...@@ -13,7 +13,6 @@ import org.keycloak.models.UserModel;
import sh.libre.scim.jpa.ScimResource; import sh.libre.scim.jpa.ScimResource;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.Set; import java.util.Set;
...@@ -94,13 +93,8 @@ public class GroupScimService extends AbstractScimService<GroupModel, Group> { ...@@ -94,13 +93,8 @@ public class GroupScimService extends AbstractScimService<GroupModel, Group> {
EntityOnRemoteScimId externalIdAsEntityOnRemoteScimId = groupMemberMapping.getExternalIdAsEntityOnRemoteScimId(); EntityOnRemoteScimId externalIdAsEntityOnRemoteScimId = groupMemberMapping.getExternalIdAsEntityOnRemoteScimId();
logger.debugf("found mapping for group member %s as %s", member, externalIdAsEntityOnRemoteScimId); logger.debugf("found mapping for group member %s as %s", member, externalIdAsEntityOnRemoteScimId);
groupMember.setValue(externalIdAsEntityOnRemoteScimId.asString()); groupMember.setValue(externalIdAsEntityOnRemoteScimId.asString());
try { URI ref = getUri(ScimResourceType.USER, externalIdAsEntityOnRemoteScimId);
String refString = String.format("Users/%s", externalIdAsEntityOnRemoteScimId.asString()); groupMember.setRef(ref.toString());
URI ref = new URI(refString);
groupMember.setRef(ref.toString());
} catch (URISyntaxException e) {
logger.warnf("bad ref uri for member " + member);
}
group.addMember(groupMember); group.addMember(groupMember);
} else { } else {
logger.warnf("member %s not found for group %s", member, groupModel.getId()); logger.warnf("member %s not found for group %s", member, groupModel.getId());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment