diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-03-01 14:55:42 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-03-01 14:55:42 +0530 |
| commit | 1894fc1762042cd832305d28c7502b62ae014404 (patch) | |
| tree | 9807c656bda1d1b5bac7e8520450fa5be1b0c645 /com.gluster.storage.management.client/src/com/gluster | |
| parent | c95d2ea02cc4126ed5cf33dac5fba5971dcf88c6 (diff) | |
Adding spring and derby libraries, server data initialization
Diffstat (limited to 'com.gluster.storage.management.client/src/com/gluster')
5 files changed, 101 insertions, 63 deletions
diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java index f25c0327..cc368bcf 100644 --- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java @@ -5,21 +5,23 @@ import java.net.URI; import javax.ws.rs.core.MediaType;
import com.gluster.storage.management.client.utils.ClientUtil;
-import com.gluster.storage.management.core.model.ServerListResponse;
+import com.gluster.storage.management.core.model.AuthStatus;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.DefaultClientConfig;
+import com.sun.jersey.api.representation.Form;
+import com.sun.jersey.core.util.Base64;
public abstract class AbstractClient {
+ private static final String HTTP_HEADER_AUTH = "Authorization";
+
protected WebResource resource;
+ private String authHeader;
- public AbstractClient() {
-
- }
-
- public AbstractClient(String serverName) {
+ public AbstractClient(String serverName, String user, String password) {
URI baseURI = new ClientUtil().getServerBaseURI(serverName);
resource = Client.create(new DefaultClientConfig()).resource(baseURI).path(getResourceName());
+ authHeader = "Basic " + new String(Base64.encode(user + ":" + password));
}
/**
@@ -33,7 +35,7 @@ public abstract class AbstractClient { */
@SuppressWarnings({ "unchecked", "rawtypes" })
private Object fetchResource(WebResource res, Class responseClass) {
- return res.accept(MediaType.TEXT_XML).get(responseClass);
+ return res.header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML).get(responseClass);
}
/**
@@ -64,5 +66,11 @@ public abstract class AbstractClient { return fetchResource(resource.path(subResourceName), responseClass);
}
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ protected Object postRequest(String subResourceName, Class responseClass, Form form) {
+ return resource.path(subResourceName).header("Authorization", authHeader).accept(MediaType.TEXT_XML)
+ .post(responseClass, form);
+ }
+
public abstract String getResourceName();
}
diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AuthManager.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AuthManager.java deleted file mode 100644 index aded8d94..00000000 --- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AuthManager.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Gluster, Inc. <http://www.gluster.com> - * This file is part of Gluster Management Console. - * - * Gluster Management Console is free software; you can redistribute it and/or - * modify it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * Gluster Management Console is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License - * for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see - * <http://www.gnu.org/licenses/>. - *******************************************************************************/ -package com.gluster.storage.management.client; - -import java.net.URI; - -import javax.ws.rs.core.UriBuilder; - -import com.gluster.storage.management.core.model.ConnectionDetails; - -public class AuthManager { - public boolean authenticate(ConnectionDetails connectionDetails) { -// WebResource service = Client.create(new DefaultClientConfig()).resource(getBaseURI()); -// -// AuthStatus authStatus = service.path("resources").path("login") -// .queryParam("user", connectionDetails.getUserId()) -// .queryParam("password", connectionDetails.getPassword()).accept(MediaType.TEXT_XML) -// .get(AuthStatus.class); -// -// return authStatus.getIsAuthenticated(); - - // Dummy authentication for demo application - return (connectionDetails.getPassword().equals("gluster") ? true : false); - } - - public static void main(String[] args) { - AuthManager authManager = new AuthManager(); - System.out.println(authManager.authenticate(new ConnectionDetails("", "gluster", "gluster"))); - } - - private static URI getBaseURI() { - return UriBuilder.fromUri("http://localhost:8080/glustermc").build(); - } -} diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java index a3f9598a..a22c3f45 100644 --- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java @@ -27,8 +27,8 @@ import com.gluster.storage.management.core.model.ServerListResponse; public class DiscoveredServersClient extends AbstractClient { private static final String RESOURCE_NAME = "discoveredservers"; - public DiscoveredServersClient(String serverName) { - super(serverName); + public DiscoveredServersClient(String serverName, String user, String password) { + super(serverName, user, password); } @Override @@ -54,7 +54,7 @@ public class DiscoveredServersClient extends AbstractClient { } public static void main(String[] args) { - DiscoveredServersClient ServerResource = new DiscoveredServersClient("localhost"); + DiscoveredServersClient ServerResource = new DiscoveredServersClient("localhost", "gluster", "gluster"); List<Server> discoveredServers = ServerResource.getDiscoveredServers(); System.out.println(discoveredServers.size()); diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java index fcc6f243..c07e155f 100644 --- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java @@ -27,8 +27,8 @@ import com.gluster.storage.management.core.model.ServerListResponse; public class GlusterServersClient extends AbstractClient { private static final String RESOURCE_NAME = "cluster/servers"; - public GlusterServersClient(String serverName) { - super(serverName); + public GlusterServersClient(String serverName, String user, String password) { + super(serverName, user, password); } @Override @@ -54,7 +54,7 @@ public class GlusterServersClient extends AbstractClient { } public static void main(String[] args) { - GlusterServersClient ServerResource = new GlusterServersClient("localhost"); + GlusterServersClient ServerResource = new GlusterServersClient("localhost", "gluster", "gluster"); List<Server> glusterServers = ServerResource.getServers(); System.out.println(glusterServers.size()); } diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java new file mode 100644 index 00000000..33f62ec1 --- /dev/null +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * Copyright (c) 2011 Gluster, Inc. <http://www.gluster.com> + * This file is part of Gluster Management Console. + * + * Gluster Management Console is free software; you can redistribute it and/or + * modify it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Gluster Management Console is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License + * for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see + * <http://www.gnu.org/licenses/>. + *******************************************************************************/ +package com.gluster.storage.management.client; + +import com.gluster.storage.management.core.model.AuthStatus; +import com.gluster.storage.management.core.model.Status; +import com.sun.jersey.api.representation.Form; + +public class UsersClient extends AbstractClient { + private static final String RESOURCE_NAME = "users"; + private static final String PATH_LOGIN = "login"; + private static final String PATH_CHANGE_PASSWORD = "changepassword"; + private static final String QUERY_PARAM_USER = "user"; + private static final String QUERY_PARAM_PASSWORD = "password"; + private static final String FORM_PARAM_OLD_PASSWORD = "oldpassword"; + private static final String FORM_PARAM_NEW_PASSWORD = "newpassword"; + + private String user; + private String password; + + public UsersClient(String serverName, String user, String password) { + super(serverName, user, password); + this.user = user; + this.password = password; + } + + public boolean authenticate() { + resource = resource.queryParam(QUERY_PARAM_USER, user).queryParam(QUERY_PARAM_PASSWORD, password); + try { + AuthStatus authStatus = (AuthStatus) fetchSubResource(user + "/" + PATH_LOGIN, AuthStatus.class); + return authStatus.getIsAuthenticated(); + } catch(Exception e) { + return false; + } + + // Dummy authentication for demo application + // return (connectionDetails.getPassword().equals("gluster") ? true : false); + } + + public boolean changePassword(String user, String oldPassword, String newPassword) { + Form form = new Form(); + form.add(FORM_PARAM_OLD_PASSWORD, oldPassword); + form.add(FORM_PARAM_NEW_PASSWORD, newPassword); + Status status = (Status) postRequest(user + "/" + PATH_CHANGE_PASSWORD, Status.class, form); + + return status.isSuccess(); + } + + public static void main(String[] args) { + UsersClient authClient = new UsersClient("localhost", "gluster", "gluster"); + System.out.println(authClient.authenticate()); + //System.out.println(authClient.changePassword("gluster", "gluster2", "gluster")); + } + + /* + * (non-Javadoc) + * + * @see com.gluster.storage.management.client.AbstractClient#getResourceName() + */ + @Override + public String getResourceName() { + return RESOURCE_NAME; + } +} |
