Yair Zaslavsky has uploaded a new change for review. Change subject: aaa: Encoding/decoding is done via helper class ......................................................................
aaa: Encoding/decoding is done via helper class We can squash this when we reach a decision on this class Topic: AAA Change-Id: I8fe3e44c4ee6b5c8483afbef4dfe35b400bc109d Signed-off-by: Yair Zaslavsky <[email protected]> --- M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainGroupResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResourceTest.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java A backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/DirectoryEntryIdUtils.java 7 files changed, 38 insertions(+), 26 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/26420/1 diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainGroupResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainGroupResource.java index 5020f03..5b6bdc7 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainGroupResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainGroupResource.java @@ -1,10 +1,9 @@ package org.ovirt.engine.api.restapi.resource; -import javax.xml.bind.DatatypeConverter; - import org.ovirt.engine.api.model.BaseResource; import org.ovirt.engine.api.model.Group; import org.ovirt.engine.api.resource.DomainGroupResource; +import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils; import org.ovirt.engine.core.aaa.DirectoryGroup; import org.ovirt.engine.core.common.queries.DirectoryIdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; @@ -22,7 +21,7 @@ private BackendDomainGroupsResource parent; public BackendDomainGroupResource(String id, BackendDomainGroupsResource parent) { - super(new String(DatatypeConverter.parseHexBinary(id)), Group.class, DirectoryGroup.class); + super(DirectoryEntryIdUtils.decode(id), Group.class, DirectoryGroup.class); this.parent = parent; } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResource.java index d667fa5..0faacf2 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResource.java @@ -1,10 +1,9 @@ package org.ovirt.engine.api.restapi.resource; -import javax.xml.bind.DatatypeConverter; - import org.ovirt.engine.api.model.BaseResource; import org.ovirt.engine.api.model.User; import org.ovirt.engine.api.resource.DomainUserResource; +import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils; import org.ovirt.engine.core.aaa.DirectoryUser; import org.ovirt.engine.core.common.queries.DirectoryIdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; @@ -24,7 +23,7 @@ private BackendDomainUsersResource parent; public BackendDomainUserResource(String id, BackendDomainUsersResource parent) { - super(new String(DatatypeConverter.parseHexBinary(id)), User.class, DirectoryUser.class); + super(DirectoryEntryIdUtils.decode(id), User.class, DirectoryUser.class); this.parent = parent; } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java index 8178926..cdb17fc 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java @@ -18,7 +18,6 @@ import javax.ws.rs.core.PathSegment; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; -import javax.xml.bind.DatatypeConverter; import org.easymock.IAnswer; import org.easymock.IMocksControl; @@ -37,6 +36,7 @@ import org.ovirt.engine.api.restapi.types.Mapper; import org.ovirt.engine.api.restapi.types.MappingLocator; import org.ovirt.engine.api.restapi.util.SessionHelper; +import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; @@ -65,15 +65,15 @@ * External identifiers used by directory users and groups. */ protected static final String[] EXTERNAL_IDS = { - DatatypeConverter.printHexBinary(GUIDS[0].toByteArray()), - DatatypeConverter.printHexBinary(GUIDS[1].toByteArray()), - DatatypeConverter.printHexBinary(GUIDS[2].toByteArray()), + DirectoryEntryIdUtils.encode(GUIDS[0].toString()), + DirectoryEntryIdUtils.encode(GUIDS[1].toString()), + DirectoryEntryIdUtils.encode(GUIDS[2].toString()), }; /** * External identifier of a non existing user or group. */ - protected static final String NON_EXISTANT_EXTERNAL_ID = DatatypeConverter.printHexBinary(Guid.newGuid().toByteArray()); + protected static final String NON_EXISTANT_EXTERNAL_ID = DirectoryEntryIdUtils.encode(Guid.newGuid().toString()); protected static final Guid NON_EXISTANT_GUID = new Guid("99999999-9999-9999-9999-999999999999"); protected static final Guid EVERYONE = new Guid("EEE00000-0000-0000-0000-123456789EEE"); diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResourceTest.java index 6f06e17..ddcd990 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResourceTest.java @@ -4,11 +4,11 @@ import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.UriInfo; -import javax.xml.bind.DatatypeConverter; import org.junit.Test; import org.ovirt.engine.api.model.Domain; import org.ovirt.engine.api.model.User; +import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils; import org.ovirt.engine.core.aaa.DirectoryUser; import org.ovirt.engine.core.common.queries.DirectoryIdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; @@ -68,7 +68,7 @@ VdcQueryType.GetDirectoryUserById, DirectoryIdQueryParameters.class, new String[] { "Domain", "Id" }, - new Object[] { DOMAIN, new String(DatatypeConverter.parseHexBinary(EXTERNAL_IDS[index])) }, + new Object[] { DOMAIN, DirectoryEntryIdUtils.decode(EXTERNAL_IDS[index]) }, notFound? null: getEntity(index) ); } @@ -76,7 +76,7 @@ @Override protected DirectoryUser getEntity(int index) { return new DirectoryUser(DOMAIN, - new String(DatatypeConverter.parseHexBinary(EXTERNAL_IDS[index])), + DirectoryEntryIdUtils.decode(EXTERNAL_IDS[index]), NAMES[index]); } } diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java index 6907f03..3f7ed97 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java @@ -1,12 +1,10 @@ package org.ovirt.engine.api.restapi.types; -import javax.xml.bind.DatatypeConverter; - import org.apache.commons.lang.StringUtils; import org.ovirt.engine.api.model.Domain; import org.ovirt.engine.api.model.Group; +import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils; import org.ovirt.engine.api.restapi.utils.GuidUtils; -import org.ovirt.engine.api.restapi.utils.MalformedIdException; import org.ovirt.engine.core.aaa.DirectoryGroup; import org.ovirt.engine.core.common.businessentities.DbGroup; import org.ovirt.engine.core.compat.Guid; @@ -23,7 +21,7 @@ dom.setId(new Guid(entity.getDomain().getBytes(), true).toString()); model.setDomain(dom); } - model.setDomainEntryId(DatatypeConverter.printHexBinary(entity.getExternalId().getBytes())); + model.setDomainEntryId(DirectoryEntryIdUtils.encode(entity.getExternalId())); return model; } @@ -36,7 +34,7 @@ dom.setId(new Guid(entity.getDirectoryName().getBytes(), true).toString()); model.setDomain(dom); } - model.setId(DatatypeConverter.printHexBinary(entity.getId().getBytes())); + model.setId(DirectoryEntryIdUtils.encode(entity.getId())); return model; } @@ -57,7 +55,7 @@ } } if (model.isSetDomainEntryId()) { - entity.setExternalId(new String(DatatypeConverter.parseHexBinary(model.getDomainEntryId()))); + entity.setExternalId(DirectoryEntryIdUtils.decode(model.getDomainEntryId())); } return entity; } diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java index e853be6..10aadc9 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java @@ -1,14 +1,12 @@ package org.ovirt.engine.api.restapi.types; -import javax.xml.bind.DatatypeConverter; - import org.apache.commons.lang.StringUtils; import org.ovirt.engine.api.model.Domain; import org.ovirt.engine.api.model.Group; import org.ovirt.engine.api.model.Groups; import org.ovirt.engine.api.model.User; +import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils; import org.ovirt.engine.api.restapi.utils.GuidUtils; -import org.ovirt.engine.api.restapi.utils.MalformedIdException; import org.ovirt.engine.core.aaa.DirectoryGroup; import org.ovirt.engine.core.aaa.DirectoryUser; import org.ovirt.engine.core.common.businessentities.DbUser; @@ -25,7 +23,7 @@ model.setLastName(entity.getLastName()); model.setEmail(entity.getEmail()); model.setDepartment(entity.getDepartment()); - model.setDomainEntryId(DatatypeConverter.printHexBinary(entity.getExternalId().getBytes())); + model.setDomainEntryId(DirectoryEntryIdUtils.encode(entity.getExternalId())); if (entity.getGroupNames() != null && entity.getGroupNames().trim().length() > 0) { model.setGroups(new Groups()); for (String name : entity.getGroupNames().split(",")) { @@ -47,7 +45,7 @@ User model = template != null ? template : new User(); model.setName(entity.getFirstName()); model.setUserName(entity.getName() + "@" + entity.getDirectoryName()); - model.setId(DatatypeConverter.printHexBinary(entity.getId().getBytes())); + model.setId(DirectoryEntryIdUtils.encode(entity.getId())); model.setLastName(entity.getLastName()); model.setEmail(entity.getEmail()); model.setDepartment(entity.getDepartment()); @@ -84,7 +82,7 @@ } } if (model.isSetDomainEntryId()) { - entity.setExternalId(new String(DatatypeConverter.parseHexBinary(model.getDomainEntryId()))); + entity.setExternalId(DirectoryEntryIdUtils.decode(model.getDomainEntryId())); } return entity; } diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/DirectoryEntryIdUtils.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/DirectoryEntryIdUtils.java new file mode 100644 index 0000000..6b5e22c --- /dev/null +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/DirectoryEntryIdUtils.java @@ -0,0 +1,18 @@ +package org.ovirt.engine.api.restapi.utils; + +import java.io.UnsupportedEncodingException; + +import javax.xml.bind.DatatypeConverter; + +public class DirectoryEntryIdUtils { + + public static String encode(String source) { + try { + return DatatypeConverter.printHexBinary(source.getBytes("UTF-8")); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException("Cannot encode " + source); + } + + } + +} -- To view, visit http://gerrit.ovirt.org/26420 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8fe3e44c4ee6b5c8483afbef4dfe35b400bc109d Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
