summaryrefslogtreecommitdiffstats
path: root/com.gluster.storage.management.client/src/com/gluster
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-03-01 14:55:42 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-03-01 14:55:42 +0530
commit1894fc1762042cd832305d28c7502b62ae014404 (patch)
tree9807c656bda1d1b5bac7e8520450fa5be1b0c645 /com.gluster.storage.management.client/src/com/gluster
parentc95d2ea02cc4126ed5cf33dac5fba5971dcf88c6 (diff)
Adding spring and derby libraries, server data initialization
Diffstat (limited to 'com.gluster.storage.management.client/src/com/gluster')
-rw-r--r--com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java22
-rw-r--r--com.gluster.storage.management.client/src/com/gluster/storage/management/client/AuthManager.java50
-rw-r--r--com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java6
-rw-r--r--com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java6
-rw-r--r--com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java80
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;
+ }
+}