Mercurial > hg > LGDataverses
view src/main/java/de/mpiwg/gazetteer/servlet/GetUser.java @ 12:c2e2d794847f
new: add config.properties file for gazetteer
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Wed, 30 Sep 2015 13:43:54 +0200 |
parents | |
children |
line wrap: on
line source
package de.mpiwg.gazetteer.servlet; import static edu.harvard.iq.dataverse.util.JsfHelper.JH; import java.io.IOException; import java.util.LinkedList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.primefaces.json.JSONException; import org.primefaces.json.JSONObject; import edu.harvard.iq.dataverse.authorization.AuthenticationRequest; import edu.harvard.iq.dataverse.authorization.CredentialsAuthenticationProvider; import edu.harvard.iq.dataverse.authorization.exceptions.AuthenticationFailedException; import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; public class GetUser extends AbstractMonographServlet{ private static final Logger logger = Logger.getLogger(GetUser.class.getName()); /* private List<FilledCredential> filledCredentials; public static class FilledCredential { CredentialsAuthenticationProvider.Credential credential; String value; public FilledCredential() { } public FilledCredential(CredentialsAuthenticationProvider.Credential credential, String value) { this.credential = credential; this.value = value; } public CredentialsAuthenticationProvider.Credential getCredential() { return credential; } public void setCredential(CredentialsAuthenticationProvider.Credential credential) { this.credential = credential; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } } public List<FilledCredential> getFilledCredentials() { return filledCredentials; } public String getCredentialsAuthProviderId() { return credentialsAuthProviderId; } public CredentialsAuthenticationProvider selectedCredentialsProvider() { return (CredentialsAuthenticationProvider) authSvc.getAuthenticationProvider(getCredentialsAuthProviderId()); } public void setCredentialsAuthProviderId(String authProviderId) { this.credentialsAuthProviderId = authProviderId; } public void resetFilledCredentials() { if ( selectedCredentialsProvider()==null ) return; filledCredentials = new LinkedList<>(); for ( CredentialsAuthenticationProvider.Credential c : selectedCredentialsProvider().getRequiredCredentials() ) { filledCredentials.add( new FilledCredential(c, "")); } } */ 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)){ AuthenticationRequest authReq = new AuthenticationRequest(); authReq.putCredential("Username", user); authReq.putCredential("Password", password); try { credentialsAuthProviderId = "builtin"; //AuthenticatedUser authUser = authSvc.authenticate(credentialsAuthProviderId, authReq); authUser = authSvc.authenticate(credentialsAuthProviderId, authReq); System.out.println("User authenticated: " + authUser.getIdentifier()); if(authUser != null){ JSONObject jsonUser = MonographUtils.jsonAuthenticatedUser(authUser); jsonResponse.put("state", "ok"); jsonResponse.put("user", jsonUser); } else { jsonResponse.put("state", "error"); jsonResponse.put("error", "User " + user + " no found."); } } catch (AuthenticationFailedException ex) { ex.printStackTrace(); } catch (JSONException 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(); } }