From dfd14c05bc117df8de627c48d4615fc9d995bbe0 Mon Sep 17 00:00:00 2001 From: Shireesh Anjal Date: Wed, 2 Feb 2011 15:10:03 +0530 Subject: initial commit --- .../management/server/services/AuthManager.java | 63 ++++++++++++++++++++++ .../storage/management/server/services/Hello.java | 32 +++++++++++ 2 files changed, 95 insertions(+) create mode 100644 com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/AuthManager.java create mode 100644 com.gluster.storage.management.server/src/com/gluster/storage/management/server/services/Hello.java (limited to 'com.gluster.storage.management.server/src') 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 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 "" + " Hello Jersey" + ""; + } + + // This method is called if HTML is request + @GET + @Produces(MediaType.TEXT_HTML) + public String sayHtmlHello() { + return " " + "" + "Hello Jersey" + "" + + "

" + "Hello Jersey" + "

" + " "; + } +} -- cgit