Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/server/auth/was/Request.java @ 4488:5041105d2edd
Check if response code from GGInA is 200 OK
Only parse the GGInA response if the status code is 200 OK. This improves the
error message if GGInA is not available and shows the real reason instead of a
JDOM error while parsing the response.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Wed, 14 Nov 2012 10:36:21 +0100 |
parents | e0c6de3a9803 |
children |
line wrap: on
line source
package de.intevation.flys.client.server.auth.was; import java.io.UnsupportedEncodingException; import java.net.URI; import org.apache.commons.codec.binary.Base64; import org.apache.http.client.methods.HttpGet; import org.apache.log4j.Logger; public class Request extends HttpGet { private final static String VERSION = "1.1"; private final static String REQUEST_SAML_RESPONSE = "GetSAMLResponse"; private final static String METHOD_AUTH_PASSWORD = "urn:opengeospatial:authNMethod:OWS:1.0:password"; private static Logger logger = Logger.getLogger(Request.class); public Request(String uri) { String request = uri + "?VERSION=" + VERSION + "&REQUEST=" + REQUEST_SAML_RESPONSE + "&METHOD=" + METHOD_AUTH_PASSWORD + "&ANONYMOUS=TRUE&CREDENTIALS="; this.setURI(URI.create(request)); } public Request(String uri, String user, String pass, String encoding) { try { String base64user = this.toBase64(user, encoding); String base64pass = this.toBase64(pass, encoding); String request = uri + "?VERSION=" + VERSION + "&REQUEST=" + REQUEST_SAML_RESPONSE + "&METHOD=" + METHOD_AUTH_PASSWORD + "&CREDENTIALS=" + base64user + "," + base64pass; this.setURI(URI.create(request)); } catch(UnsupportedEncodingException e) { logger.error(e); } } private String toBase64(String value, String encoding) throws UnsupportedEncodingException { if (encoding == null) { encoding = "utf-8"; } try { return new String(Base64.encodeBase64(value.getBytes(encoding))); } catch(UnsupportedEncodingException e) { logger.warn("Can't encode string with encoding " + encoding + ". Falling back to utf-8. " + e); return this.toBase64(value, "utf-8"); } } } // vim: set et si fileencoding=utf-8 ts=4 sw=4 tw=80: