view 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 source

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();
	}
}