bjoern@2943: package de.intevation.flys.client.server.was; bjoern@2943: bjoern@2943: import java.io.UnsupportedEncodingException; bjoern@2943: import java.net.URI; bjoern@2943: bjoern@2943: import org.apache.commons.codec.binary.Base64; bjoern@2943: import org.apache.http.client.methods.HttpGet; bjoern@2943: import org.apache.log4j.Logger; bjoern@2943: bjoern@2943: public class Request extends HttpGet { bjoern@2943: bjoern@2943: private final static String VERSION = "1.1"; bjoern@2943: private final static String REQUEST_SAML_RESPONSE = "GetSAMLResponse"; bjoern@2943: private final static String METHOD_AUTH_PASSWORD = bjoern@2943: "urn:opengeospatial:authNMethod:OWS:1.0:password"; bjoern@2943: bjoern@2943: private static Logger logger = Logger.getLogger(Request.class); bjoern@2943: bjoern@2943: public Request(String uri) { bjoern@2943: String request = uri + "?VERSION=" + VERSION + "&REQUEST=" + bjoern@2943: REQUEST_SAML_RESPONSE + "&METHOD=" + METHOD_AUTH_PASSWORD + bjoern@2943: "&ANONYMOUS=TRUE&CREDENTIALS="; bjoern@2943: this.setURI(URI.create(request)); bjoern@2943: } bjoern@2943: bjoern@2943: public Request(String uri, String user, String pass, String encoding) { bjoern@2943: try { bjoern@2943: String base64user = this.toBase64(user, encoding); bjoern@2943: String base64pass = this.toBase64(pass, encoding); bjoern@2943: bjoern@2943: String request = uri + "?VERSION=" + VERSION + "&REQUEST=" + bjoern@2943: REQUEST_SAML_RESPONSE + "&METHOD=" + METHOD_AUTH_PASSWORD + bjoern@2943: "&CREDENTIALS=" + base64user + "," + base64pass; bjoern@2943: bjoern@2943: System.out.println(request); bjoern@2943: bjoern@2943: this.setURI(URI.create(request)); bjoern@2943: } bjoern@2943: catch(UnsupportedEncodingException e) { bjoern@2943: logger.error(e); bjoern@2943: } bjoern@2943: } bjoern@2943: bjoern@2943: private String toBase64(String value, String encoding) throws bjoern@2943: UnsupportedEncodingException { bjoern@2943: if (encoding == null) { bjoern@2943: encoding = "utf-8"; bjoern@2943: } bjoern@2943: try { bjoern@2943: return new String(Base64.encodeBase64(value.getBytes(encoding))); bjoern@2943: } bjoern@2943: catch(UnsupportedEncodingException e) { bjoern@2943: logger.warn("Can't encode string with encoding " + encoding + bjoern@2943: ". Falling back to utf-8. " + e); bjoern@2943: return this.toBase64(value, "utf-8"); bjoern@2943: } bjoern@2943: } bjoern@2943: bjoern@2943: } bjoern@2943: // vim: set et si fileencoding=utf-8 ts=4 sw=4 tw=80: bjoern@2943: