diff src/main/java/de/mpiwg/monographs/servlet/GetUser.java @ 0:fcb8807fbd84

Fist commit!
author "jurzua <jurzua@mpiwg-berlin.mpg.de>"
date Tue, 10 Mar 2015 15:15:30 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/de/mpiwg/monographs/servlet/GetUser.java	Tue Mar 10 15:15:30 2015 +0100
@@ -0,0 +1,71 @@
+package de.mpiwg.monographs.servlet;
+
+import java.io.IOException;
+
+import javax.inject.Inject;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang.StringUtils;
+import org.codehaus.jettison.json.JSONObject;
+import org.swordapp.server.AuthCredentials;
+import org.swordapp.server.SwordAuthException;
+import org.swordapp.server.SwordServerException;
+
+import edu.harvard.iq.dvn.api.datadeposit.SwordAuth;
+import edu.harvard.iq.dvn.core.admin.VDCUser;
+
+public class GetUser extends AbstractMonographServlet{
+
+	@Inject
+	private SwordAuth swordAuth;
+	
+	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+		// Set response content type
+		response.setContentType("application/json");
+		JSONObject jsonResponse = new JSONObject();	
+		
+		String user = request.getParameter("user");
+		String password = request.getParameter("password");
+		
+		
+		if(StringUtils.isNotEmpty(user) && StringUtils.isNotEmpty(password)){
+			AuthCredentials authCredentials = new AuthCredentials(user, password, null);
+	    	try {
+				
+	    		VDCUser vdcUser = swordAuth.auth(authCredentials);
+	    		
+	    		
+	    		if(vdcUser != null){
+	    			JSONObject jsonUser = MonographUtils.jsonVDCUser(vdcUser);
+	    			jsonResponse.put("state", "ok");
+	    			jsonResponse.put("user", jsonUser);	
+	        		
+	    		}else{
+	    			jsonResponse.put("state", "error");
+	    			jsonResponse.put("error", "User " + user + " no found.");
+	    		}
+	    		
+				
+			} catch (SwordAuthException e) {
+				e.printStackTrace();
+			} catch (SwordServerException e) {
+				e.printStackTrace();
+			} catch (Exception e){
+				e.printStackTrace();
+			}			
+		}else{
+			try {
+				jsonResponse.put("state", "error");
+				jsonResponse.put("error", "Request error. Parameters 'user' and 'password' are mandatory");
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}		
+		
+		java.io.PrintWriter out = response.getWriter();
+		out.print(jsonResponse);
+		out.flush();
+	}
+}