Yair Zaslavsky has uploaded a new change for review. Change subject: aaa: Intrdoucing of ExtensionException ......................................................................
aaa: Intrdoucing of ExtensionException The following patch introduces the Exception class to be thrown from extensions, and the error enum representing the type of error. Changes to Directory and Authenticator method signatures were applied where needed. Topic: AAA Change-Id: Ie5cb41bf103c6345e501a81cbe247dc53051d0db Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com> --- M backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/Directory.java M backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/PasswordAuthenticator.java M backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopAuthenticator.java M backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopDirectory.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalAuthenticator.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalDirectory.java A backend/manager/modules/extension-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionException.java 7 files changed, 71 insertions(+), 26 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/07/25507/1 diff --git a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/Directory.java b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/Directory.java index 6ed8a36..c31c624 100644 --- a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/Directory.java +++ b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/Directory.java @@ -6,6 +6,7 @@ import org.ovirt.engine.core.common.utils.ExternalId; import org.ovirt.engine.core.extensions.mgr.Extension; +import org.ovirt.engine.core.extensions.mgr.ExtensionException; /** * A directory is an object that manages a collection of users and groups, usually stored in an external system like an @@ -33,7 +34,7 @@ * @param name the name of the user * @return the user corresponding to the given name or {@code null} if no such user can be found */ - public abstract DirectoryUser findUser(String name); + public abstract DirectoryUser findUser(String name) throws ExtensionException; /** * Retrieves a user from the directory given its identifier. @@ -41,7 +42,7 @@ * @param id the identifier of the user * @return the user corresponding to the given identifier or {@code null} if no such user can be found */ - public abstract DirectoryUser findUser(ExternalId id); + public abstract DirectoryUser findUser(ExternalId id) throws ExtensionException; /** * Retrieves a list of users from the directory given their identifiers. @@ -50,7 +51,7 @@ * @return a list containing at most on user for each identifier in the given set with no particular order, note * that the returned list may contain less elements than the given list of identifiers */ - public abstract List<DirectoryUser> findUsers(List<ExternalId> ids); + public abstract List<DirectoryUser> findUsers(List<ExternalId> ids) throws ExtensionException; /** * Retrieves a group from the directory given its name. @@ -58,7 +59,7 @@ * @param name the name of the group * @return the group corresponding to the given name or {@code null} if no such group can be found */ - public abstract DirectoryGroup findGroup(String name); + public abstract DirectoryGroup findGroup(String name) throws ExtensionException; /** * Retrieves a group from the directory given its identifier. @@ -66,7 +67,7 @@ * @param id the identifier of the group * @return the group corresponding to the given identifier or {@code null} if no such group can be found */ - public abstract DirectoryGroup findGroup(ExternalId id); + public abstract DirectoryGroup findGroup(ExternalId id) throws ExtensionException; /** * Search the directory looking for users that match the given search query. Note that the query uses the LDAP query @@ -76,7 +77,7 @@ * @param query the LDAP query * @return a list containing the users that match the given query */ - public abstract List<DirectoryUser> queryUsers(String query); + public abstract List<DirectoryUser> queryUsers(String query) throws ExtensionException; /** * Search the directory looking for groups that match the given search query. Note that the query uses the LDAP @@ -86,7 +87,7 @@ * @param query the LDAP query * @return a list containing the groups that match the given query */ - public abstract List<DirectoryGroup> queryGroups(String query); + public abstract List<DirectoryGroup> queryGroups(String query) throws ExtensionException; @Override public void setContext(Map<ExtensionProperties, Object> context) { diff --git a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/PasswordAuthenticator.java b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/PasswordAuthenticator.java index 73a0203..e95aba2 100644 --- a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/PasswordAuthenticator.java +++ b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/PasswordAuthenticator.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.aaa; +import org.ovirt.engine.core.extensions.mgr.ExtensionException; + /** * A password authenticator checks a user name and a password. Returns an AuthenticationResult object representing the * result of the authenticate call. @@ -17,5 +19,5 @@ * @param password * @return AuthenticationResult object that holds the authentication result */ - public abstract AuthenticationResult authenticate(String name, String password); + public abstract AuthenticationResult authenticate(String name, String password) throws ExtensionException; } diff --git a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopAuthenticator.java b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopAuthenticator.java index dcf9ceb..82c96a7 100644 --- a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopAuthenticator.java +++ b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopAuthenticator.java @@ -2,6 +2,7 @@ import org.ovirt.engine.core.aaa.AuthenticationResult; import org.ovirt.engine.core.aaa.PasswordAuthenticator; +import org.ovirt.engine.core.extensions.mgr.ExtensionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,7 +16,7 @@ } @Override - public AuthenticationResult authenticate(String name, String password) { + public AuthenticationResult authenticate(String name, String password) throws ExtensionException { return new NopAuthenticationResult(); } diff --git a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopDirectory.java b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopDirectory.java index 4ade609..762252a 100644 --- a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopDirectory.java +++ b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/nop/NopDirectory.java @@ -9,6 +9,7 @@ import org.ovirt.engine.core.aaa.DirectoryGroup; import org.ovirt.engine.core.aaa.DirectoryUser; import org.ovirt.engine.core.common.utils.ExternalId; +import org.ovirt.engine.core.extensions.mgr.ExtensionException; public class NopDirectory extends Directory { /** @@ -20,7 +21,7 @@ * {@inheritDoc} */ @Override - public DirectoryUser findUser(String name) { + public DirectoryUser findUser(String name) throws ExtensionException { ExternalId id = null; try { id = new ExternalId(name.getBytes("UTF-8")); @@ -34,7 +35,7 @@ * {@inheritDoc} */ @Override - public DirectoryUser findUser(ExternalId id) { + public DirectoryUser findUser(ExternalId id) throws ExtensionException { String name = null; try { name = new String(id.getBytes(), "UTF-8"); @@ -48,7 +49,7 @@ * {@inheritDoc} */ @Override - public List<DirectoryUser> findUsers(List<ExternalId> ids) { + public List<DirectoryUser> findUsers(List<ExternalId> ids) throws ExtensionException { List<DirectoryUser> users = new ArrayList<>(ids.size()); for (ExternalId id : ids) { DirectoryUser user = findUser(id); @@ -63,7 +64,7 @@ * {@inheritDoc} */ @Override - public DirectoryGroup findGroup(String name) { + public DirectoryGroup findGroup(String name) throws ExtensionException { return null; } @@ -71,7 +72,7 @@ * {@inheritDoc} */ @Override - public DirectoryGroup findGroup(ExternalId id) { + public DirectoryGroup findGroup(ExternalId id) throws ExtensionException { return null; } @@ -79,7 +80,7 @@ * {@inheritDoc} */ @Override - public List<DirectoryUser> queryUsers(String query) { + public List<DirectoryUser> queryUsers(String query) throws ExtensionException { return Collections.emptyList(); } @@ -87,7 +88,7 @@ * {@inheritDoc} */ @Override - public List<DirectoryGroup> queryGroups(String query) { + public List<DirectoryGroup> queryGroups(String query) throws ExtensionException { return Collections.emptyList(); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalAuthenticator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalAuthenticator.java index c7a4ef7..f930f5a 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalAuthenticator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalAuthenticator.java @@ -8,6 +8,7 @@ import org.ovirt.engine.core.bll.adbroker.LdapReturnValueBase; import org.ovirt.engine.core.bll.adbroker.LdapUserPasswordBaseParameters; import org.ovirt.engine.core.bll.adbroker.UserAuthenticationResult; +import org.ovirt.engine.core.extensions.mgr.ExtensionException; import org.ovirt.engine.core.extensions.mgr.Extension.ExtensionProperties; /** @@ -43,7 +44,7 @@ * {@inheritDoc} */ @Override - public AuthenticationResult authenticate(String name, String password) { + public AuthenticationResult authenticate(String name, String password) throws ExtensionException { LdapReturnValueBase ldapResult = broker.runAdAction( AdActionType.AuthenticateUser, new LdapUserPasswordBaseParameters(getProfileName(), name, password) diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalDirectory.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalDirectory.java index 34b0283..f6da037 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalDirectory.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/aaa/provisional/ProvisionalDirectory.java @@ -20,6 +20,7 @@ import org.ovirt.engine.core.common.businessentities.LdapGroup; import org.ovirt.engine.core.common.businessentities.LdapUser; import org.ovirt.engine.core.common.utils.ExternalId; +import org.ovirt.engine.core.extensions.mgr.ExtensionException; import org.ovirt.engine.core.extensions.mgr.Extension.ExtensionProperties; import org.ovirt.engine.core.utils.log.Log; import org.ovirt.engine.core.utils.log.LogFactory; @@ -55,7 +56,7 @@ } @Override - public DirectoryUser findUser(ExternalId id) { + public DirectoryUser findUser(ExternalId id) throws ExtensionException { // Find the user with the old mechanism: LdapReturnValueBase ldapResult = broker.runAdAction( AdActionType.GetAdUserByUserId, @@ -68,7 +69,7 @@ } @Override - public DirectoryUser findUser(String name) { + public DirectoryUser findUser(String name) throws ExtensionException { // Find the user with the old mechanism: LdapReturnValueBase ldapResult = broker.runAdAction( AdActionType.GetAdUserByUserName, @@ -84,7 +85,7 @@ } @Override - public List<DirectoryUser> findUsers(List<ExternalId> ids) { + public List<DirectoryUser> findUsers(List<ExternalId> ids) throws ExtensionException { // Find the users using the old mechanism: LdapReturnValueBase ldapResult = broker.runAdAction( AdActionType.GetAdUserByUserIdList, @@ -98,11 +99,11 @@ } @Override - public List<DirectoryUser> queryUsers(String query) { + public List<DirectoryUser> queryUsers(String query) throws ExtensionException { throw new UnsupportedOperationException(); } - public List<DirectoryUser> queryUsers(LdapQueryData data) { + public List<DirectoryUser> queryUsers(LdapQueryData data) throws ExtensionException { // Find the users using the old mechanism: LdapReturnValueBase ldapResult = broker.runAdAction( AdActionType.SearchUserByQuery, @@ -175,13 +176,13 @@ } @Override - public DirectoryGroup findGroup(String name) { + public DirectoryGroup findGroup(String name) throws ExtensionException { // Retrieving groups by name isn't currently supported or needed. return null; } @Override - public DirectoryGroup findGroup(ExternalId id) { + public DirectoryGroup findGroup(ExternalId id) throws ExtensionException { // Find the group using the old mechanism: LdapReturnValueBase ldapResult = broker.runAdAction( AdActionType.GetAdGroupByGroupId, @@ -194,11 +195,11 @@ } @Override - public List<DirectoryGroup> queryGroups(String query) { + public List<DirectoryGroup> queryGroups(String query) throws ExtensionException { throw new UnsupportedOperationException(); } - public List<DirectoryGroup> queryGroups(LdapQueryData data) { + public List<DirectoryGroup> queryGroups(LdapQueryData data) throws ExtensionException { // Find the groups using the old mechanism: LdapReturnValueBase ldapResult = broker.runAdAction( AdActionType.SearchGroupsByQuery, diff --git a/backend/manager/modules/extension-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionException.java b/backend/manager/modules/extension-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionException.java new file mode 100644 index 0000000..b532e20 --- /dev/null +++ b/backend/manager/modules/extension-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionException.java @@ -0,0 +1,38 @@ +package org.ovirt.engine.core.extensions.mgr; + +public class ExtensionException extends RuntimeException { + + + public enum ExtensionError { INCORRET_CREDENTIALS, + CREDENTIALS_EXPIRED, + INVALID_CONFIGURATION, + SERVER_IS_NOT_AVAILABLE, + GENERAL_ERROR + }; + + public ExtensionException(ExtensionError error) { + this.error = error; + } + + public ExtensionException(ExtensionError error, Throwable cause) { + super(cause); + this.error = error; + } + + public ExtensionException(ExtensionError error, String message) { + super(message); + this.error = error; + } + + public ExtensionException(ExtensionError error, String message, Throwable cause) { + super(message, cause); + this.error = error; + } + + private ExtensionError error; + + public ExtensionError getError() { + return error; + } + +} -- To view, visit http://gerrit.ovirt.org/25507 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ie5cb41bf103c6345e501a81cbe247dc53051d0db Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches