summaryrefslogtreecommitdiffstats
path: root/com.gluster.storage.management.server/src
diff options
context:
space:
mode:
Diffstat (limited to 'com.gluster.storage.management.server/src')
-rw-r--r--com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/AuthManager.java63
-rw-r--r--com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/Hello.java32
2 files changed, 95 insertions, 0 deletions
diff --git a/com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/AuthManager.java b/com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/AuthManager.java
new file mode 100644
index 00000000..5dc4fdcf
--- /dev/null
+++ b/com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/AuthManager.java
@@ -0,0 +1,63 @@
+package com.gluster.storage.management.server.services;
+
+import java.io.File;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Request;
+
+import com.gluster.storage.management.core.model.AuthStatus;
+import com.gluster.storage.management.core.utils.FileUtil;
+import com.gluster.storage.management.core.utils.MD5Crypt;
+import com.gluster.storage.management.core.utils.ProcessResult;
+import com.gluster.storage.management.core.utils.ProcessUtil;
+
+import com.sun.jersey.spi.container.ContainerRequest;
+
+@Path("/login")
+public class AuthManager {
+ @Context
+ private Request request;
+
+ /**
+ * Authenticates given user with given password for login on current system
+ * @param user
+ * @param password
+ * @return true is user can be successfully authenticated using given password, else false
+ */
+ private boolean authenticate(String user, String password) {
+ String tmpFileName = "tmp";
+ File saltFile = new File(tmpFileName);
+ ProcessResult result = new ProcessUtil().executeCommand("get-user-password.py", user, tmpFileName);
+ if (result.isSuccess()) {
+ String salt = new FileUtil().readFileAsString(saltFile);
+ String encryptedPassword = MD5Crypt.crypt(password, salt);
+ return encryptedPassword.equals(salt);
+ }
+
+ return false;
+ }
+
+ @GET
+ @Produces(MediaType.TEXT_XML)
+ public AuthStatus login() {
+ String user = null;
+ String password = null;
+
+ if (request instanceof ContainerRequest) {
+ ContainerRequest containerRequest = (ContainerRequest) request;
+ MultivaluedMap<String, String> paramsMap = containerRequest.getQueryParameters();
+ user = paramsMap.get("user").get(0);
+ password = paramsMap.get("password").get(0);
+ }
+
+ AuthStatus authStatus = new AuthStatus();
+ authStatus.setIsAuthenticated(authenticate(user, password));
+
+ return authStatus;
+ }
+}
diff --git a/com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/Hello.java b/com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/Hello.java
new file mode 100644
index 00000000..eea0a36f
--- /dev/null
+++ b/com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/Hello.java
@@ -0,0 +1,32 @@
+package com.gluster.storage.management.server.services;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+//Sets the path to base URL + /hello
+@Path("/hello")
+public class Hello {
+ // This method is called if TEXT_PLAIN is request
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String sayPlainTextHello() {
+ return "Hello Jersey";
+ }
+
+ // This method is called if XMLis request
+ @GET
+ @Produces(MediaType.TEXT_XML)
+ public String sayXMLHello() {
+ return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";
+ }
+
+ // This method is called if HTML is request
+ @GET
+ @Produces(MediaType.TEXT_HTML)
+ public String sayHtmlHello() {
+ return "<html> " + "<title>" + "Hello Jersey" + "</title>"
+ + "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> ";
+ }
+}