HttpUtilities.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.utils.transport.http;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.lang.reflect.Field;
- import java.net.HttpURLConnection;
- import java.net.InetSocketAddress;
- import java.net.Proxy;
- import java.net.URL;
- import java.net.URLConnection;
- import java.security.Key;
- import java.security.KeyStore;
- import java.security.Provider;
- import java.security.cert.CertStore;
- import java.util.ArrayList;
- import java.util.Enumeration;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import javax.net.ssl.CertPathTrustManagerParameters;
- import javax.net.ssl.HttpsURLConnection;
- import javax.net.ssl.KeyManager;
- import javax.net.ssl.KeyManagerFactory;
- import javax.net.ssl.SSLContext;
- import javax.net.ssl.TrustManager;
- import javax.net.ssl.TrustManagerFactory;
- import javax.net.ssl.X509KeyManager;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.commons.codec.digest.DigestUtils;
- import org.apache.commons.lang.StringUtils;
- import org.openspcoop2.utils.CopyStream;
- import org.openspcoop2.utils.LoggerWrapperFactory;
- import org.openspcoop2.utils.Utilities;
- import org.openspcoop2.utils.UtilsException;
- import org.openspcoop2.utils.certificate.KeystoreType;
- import org.openspcoop2.utils.certificate.KeystoreUtils;
- import org.openspcoop2.utils.certificate.hsm.HSMManager;
- import org.openspcoop2.utils.digest.DigestEncoding;
- import org.openspcoop2.utils.io.Base64Utilities;
- import org.openspcoop2.utils.mime.MimeTypes;
- import org.openspcoop2.utils.random.RandomGenerator;
- import org.openspcoop2.utils.regexp.RegExpUtilities;
- import org.openspcoop2.utils.resources.FileSystemUtilities;
- import org.openspcoop2.utils.resources.Loader;
- import org.openspcoop2.utils.transport.TransportUtils;
- import org.slf4j.Logger;
- /**
- * Classe che contiene utility per accedere a risorse http
- *
- * @author Poli Andrea (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class HttpUtilities {
-
- private HttpUtilities() {}
- /**
- * Si occupa di effettuare la connessione verso l'indirizzo specificato dal<var>path</var>.
- *
- *
- * @param path url del file xml contenente la definizione di un servizio.
- * @return i byte del file xml situato all'indirizzo <var>path</var>.
- *
- */
- /** TIMEOUT_CONNECTION (2 minuti) */
- public static final int HTTP_CONNECTION_TIMEOUT = 10000;
- /** TIMEOUT_READ (2 minuti) */
- public static final int HTTP_READ_CONNECTION_TIMEOUT = 120000;
-
- public static List<String> getClientAddressHeaders() {
- // X-Forwarded-For: A de facto standard for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or load balancer
- // Forwarded: Disclose original information of a client connecting to a web server through an HTTP proxy.'
- List<String> possibiliHeaders = new ArrayList<>();
- possibiliHeaders.add("X-Forwarded-For");
- possibiliHeaders.add("Forwarded-For"); // senza la 'X-' nel caso l'header venga fatto rendere uno standard
- possibiliHeaders.add("X-Forwarded");
- possibiliHeaders.add("Forwarded");
- possibiliHeaders.add("X-Client-IP");
- possibiliHeaders.add("Client-IP");
- possibiliHeaders.add("X-Cluster-Client-IP");
- possibiliHeaders.add("Cluster-Client-IP");
- return possibiliHeaders;
- }
- public static String getClientAddress(HttpServletRequest request) throws UtilsException{
- try{
- return getClientAddress(getClientAddressHeaders(), request);
- }catch(Exception e){
- throw new UtilsException(e.getMessage(),e);
- }
- }
- public static String getClientAddressFirstValue(HttpServletRequest request) throws UtilsException{
- return getClientAddress(request);
- }
- private static String getClientAddress(List<String> headers, HttpServletRequest request) throws UtilsException{
- if(!headers.isEmpty()){
- for (String header : headers) {
- List<String> l = TransportUtils.getHeaderValues(request,header);
- if(l!=null && !l.isEmpty()) {
- return l.get(0);
- }
- }
- }
- return null;
- }
-
- @Deprecated
- public static String getClientAddress(Map<String, String> transportProperties) throws UtilsException{
- return getClientAddress(getClientAddressHeaders(), TransportUtils.convertToMapListValues(transportProperties));
- }
- public static String getClientAddressFirstValue(Map<String, List<String>> headers) throws UtilsException{
- return getClientAddress(getClientAddressHeaders(), headers);
- }
- private static String getClientAddress(List<String> headers, Map<String, List<String>> transportProperties) {
- if(!headers.isEmpty()){
- for (String header : headers) {
- List<String> l = TransportUtils.getRawObject(transportProperties,header);
- if(l!=null && !l.isEmpty()) {
- return l.get(0);
- }
- }
- }
- return null;
- }
-
-
- public static String getHttpReason(int status) {
-
- if(status==100) {
- return "Continue"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.2.1]
- }
- else if(status==101) {
- return "Switching Protocols"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.2.2]
- }
- else if(status==102) {
- return "Processing"; // WebDAV - RFC 2518 [RFC2518]
- }
- // 103-199 Unassigned
-
-
-
- else if(status==200) {
- return "OK"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.3.1]
- }
- else if(status==201) {
- return "Created"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.3.2]
- }
- else if(status==202) {
- return "Accepted"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.3.3]
- }
- else if(status==203) {
- return "Non-Authoritative Information"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.3.4]
- }
- else if(status==204) {
- return "No Content"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.3.5]
- }
- else if(status==205) {
- return "Reset Content"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.3.6]
- }
- else if(status==206) {
- return "Partial Content"; // HTTP/1.1 - RFC 2616 [RFC7233, Section 4.1]
- }
- else if(status==207) {
- return "Multi-Status"; // (WebDAV - RFC 2518) [RFC4918] or 207 Partial Update OK (HTTP/1.1 - draft-ietf-http-v11-spec-rev-01?)
- }
- else if(status==208) {
- return "Already Reported"; // WebDAV - RFC 2518 [RFC5842]
- }
- // 209-225 Unassigned
- else if(status==226) {
- return "IM Used"; // [RFC3229]
- }
- // 227-299 Unassigned
-
-
- else if(status==300) {
- return "Multiple Choices"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.4.1]
- }
- else if(status==301) {
- return "Moved Permanently"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.4.2]
- }
- else if(status==302) {
- return "Found"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.4.3]
- }
- else if(status==303) {
- return "See Other"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.4.4]
- }
- else if(status==304) {
- return "Not Modified"; // HTTP/1.0 - RFC 1945 [RFC7232, Section 4.1]
- }
- else if(status==305) {
- return "Use Proxy"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.4.5]
- }
- else if(status==306) {
- return "Switch Proxy"; // (Unused) [RFC7231, Section 6.4.6]
- }
- else if(status==307) {
- return "Temporary Redirect"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.4.7]
- }
- else if(status==308) {
- return "Permanent Redirect"; // [RFC7538]
- }
- // 309-399 Unassigned
-
- else if(status==400) {
- return "Bad Request"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.5.1]
- }
- else if(status==401) {
- return "Unauthorized"; // HTTP/1.0 - RFC 1945 [RFC7235, Section 3.1]
- }
- else if(status==402) {
- return "Payment Required"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.5.2]
- }
- else if(status==403) {
- return "Forbidden"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.5.3]
- }
- else if(status==404) {
- return "Not Found"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.5.4]
- }
- else if(status==405) {
- return "Method Not Allowed"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.5.5]
- }
- else if(status==406) {
- return "Not Acceptable"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.5.6]
- }
- else if(status==407) {
- return "Proxy Authentication Required"; // HTTP/1.1 - RFC 2616 [RFC7235, Section 3.2]
- }
- else if(status==408) {
- return "Request Timeout"; // [RFC7231, Section 6.5.7]
- }
- else if(status==409) {
- return "Conflict"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.5.8]
- }
- else if(status==410) {
- return "Gone"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.5.9]
- }
- else if(status==411) {
- return "Length Required"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.5.10]
- }
- else if(status==412) {
- return "Precondition Failed"; // HTTP/1.1 - RFC 2616 [RFC7232, Section 4.2][RFC8144, Section 3.2]
- }
- else if(status==413) {
- return "Payload Too Large"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.5.11]
- }
- else if(status==414) {
- return "URI Too Long"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.5.12]
- }
- else if(status==415) {
- return "Unsupported Media Type"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.5.13][RFC7694, Section 3]
- }
- else if(status==416) {
- return "Range Not Satisfiable"; // HTTP/1.1 - RFC 2616 [RFC7233, Section 4.4]
- }
- else if(status==417) {
- return "Expectation Failed"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.5.14]
- }
- // 418 Unassigned
- else if(status==419) {
- return "Authentication Timeout"; // HTTP/1.1 - RFC 2616
- }
- // 420 Unassigned
- else if(status==421) {
- return "Misdirected Request"; // [RFC7540, Section 9.1.2]
- }
- else if(status==422) {
- return "Unprocessable Entity"; // WebDAV - RFC 2518 [RFC4918]
- }
- else if(status==423) {
- return "Locked"; // (WebDAV - RFC 2518) [RFC4918]
- }
- else if(status==424) {
- return "Failed Dependency"; // WebDAV - RFC 2518 [RFC4918]
- }
- // 425 Unassigned
- else if(status==426) {
- return "Upgrade Required"; // [RFC7231, Section 6.5.15]
- }
- // 427 Unassigned
- else if(status==428) {
- return "Precondition Required"; // [RFC6585]
- }
- else if(status==429) {
- return "Too Many Requests"; // [RFC6585]
- }
- // 430 Unassigned
- else if(status==431) {
- return "Request Header Fields Too Large"; // [RFC6585]
- }
- // 432-450 Unassigned
- else if(status==451) {
- return "Unavailable For Legal Reasons"; // [RFC7725]
- }
- // 452-499 Unassigned
-
- else if(status==500) {
- return "Internal Server Error"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.6.1]
- }
- else if(status==501) {
- return "Not Implemented"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.6.2]
- }
- else if(status==502) {
- return "Bad Gateway"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.6.3]
- }
- else if(status==503) {
- return "Service Unavailable"; // HTTP/1.0 - RFC 1945 [RFC7231, Section 6.6.4]
- }
- else if(status==504) {
- return "Gateway Timeout"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.6.5]
- }
- else if(status==505) {
- return "HTTP Version Not Supported"; // HTTP/1.1 - RFC 2616 [RFC7231, Section 6.6.6]
- }
- else if(status==506) {
- return "Variant Also Negotiates"; // [RFC2295]
- }
- else if(status==507) {
- return "Insufficient Storage"; // WebDAV - RFC 2518 [RFC4918]
- }
- else if(status==508) {
- return "Loop Detected"; // [RFC5842]
- }
- else if(status==509) {
- return "Bandwidth Limit Exceeded"; // [Apache]
- }
- else if(status==510) {
- return "Not Extended"; // [RFC2774]
- }
- else if(status==511) {
- return "Network Authentication Required"; // [RFC6585]
- }
- // 512-599 Unassigned
- return null;
- }
-
-
-
- public static final String HEADER_X_DOWNLOAD = "application/x-download";
- public static final String HEADER_CONTENT_DISPOSITION = "Content-Disposition";
- public static final String HEADER_ATTACH_FILE = "attachment; filename=";
-
- public static void setOutputFile(HttpServletResponse response, boolean noCache, String fileName) throws UtilsException{
-
- if(fileName==null) {
- throw new UtilsException("Param filename is null");
- }
-
- // setto content-type e header per gestire il download lato client
- String mimeType = null;
- if(fileName.contains(".")){
- String ext = null;
- try{
- ext = fileName.substring(fileName.lastIndexOf(".")+1,fileName.length());
- }catch(Exception e){
- // ext non disponibile
- }
- MimeTypes mimeTypes = MimeTypes.getInstance();
- if(ext!=null && mimeTypes.existsExtension(ext)){
- mimeType = mimeTypes.getMimeType(ext);
- /**System.out.println("CUSTOM ["+mimeType+"]");*/
- }
- else{
- mimeType = HttpConstants.CONTENT_TYPE_X_DOWNLOAD;
- }
- }
- else{
- mimeType = HttpConstants.CONTENT_TYPE_X_DOWNLOAD;
- }
-
- setOutputFile(response, noCache, fileName, mimeType);
- }
-
- public static void setOutputFile(HttpServletResponse response, boolean noCache, String fileName, String mimeType) throws UtilsException{
-
- if(response==null) {
- throw new UtilsException("Param response is null");
- }
-
- if(mimeType!=null){
- response.setContentType(mimeType);
- }
- response.setHeader(HttpConstants.CONTENT_DISPOSITION, (new StringBuilder()).append(HttpConstants.CONTENT_DISPOSITION_ATTACH_FILE_PREFIX+"\"").append(fileName).append("\"").toString());
-
- // no cache
- if(noCache){
- setNoCache(response);
- }
-
- }
-
-
-
- public static void setNoCache(HttpServletResponse response) {
- response.setHeader(HttpConstants.CACHE_STATUS_HTTP_1_1, HttpConstants.CACHE_STATUS_HTTP_1_1_DISABLE_CACHE); // HTTP 1.1.
- response.setHeader(HttpConstants.CACHE_STATUS_HTTP_1_0, HttpConstants.CACHE_STATUS_HTTP_1_0_DISABLE_CACHE); // HTTP 1.0.
- response.setDateHeader(HttpConstants.CACHE_STATUS_PROXY_EXPIRES, HttpConstants.CACHE_STATUS_PROXY_EXPIRES_DISABLE_CACHE); // Proxies.
- response.setHeader(HttpConstants.CACHE_STATUS_VARY, HttpConstants.CACHE_STATUS_VARY_UNCACHABLE);
- }
-
-
- @Deprecated
- public static boolean isNoCache(Map<String, String> headers) throws UtilsException{
- return isDirectiveNoCache(TransportUtils.convertToMapListValues(headers));
- }
- public static boolean isDirectiveNoCache(Map<String, List<String>> headers) throws UtilsException{
- List<String> l = getCacheControlDirectives(headers);
- if(l.isEmpty()) {
- l = getPragmaDirectives(headers);
- }
- if(l.isEmpty()) {
- return false;
- }
- else {
- return l.contains(HttpConstants.CACHE_STATUS_DIRECTIVE_NO_CACHE);
- }
- }
-
- @Deprecated
- public static boolean isNoStore(Map<String, String> headers) throws UtilsException{
- return isDirectiveNoStore(TransportUtils.convertToMapListValues(headers));
- }
- public static boolean isDirectiveNoStore(Map<String, List<String>> headers) throws UtilsException{
- List<String> l = getCacheControlDirectives(headers);
- if(l.isEmpty()) {
- l = getPragmaDirectives(headers);
- if(l.isEmpty()) {
- return false;
- }else{
- return l.contains(HttpConstants.CACHE_STATUS_DIRECTIVE_NO_CACHE); // no cache in pragma vale anche per nostore.
- }
- }
- else {
- return l.contains(HttpConstants.CACHE_STATUS_DIRECTIVE_NO_STORE);
- }
- }
-
- @Deprecated
- public static Integer getCacheMaxAge(Map<String, String> headers) {
- return getDirectiveCacheMaxAge(TransportUtils.convertToMapListValues(headers));
- }
- public static Integer getDirectiveCacheMaxAge(Map<String, List<String>> headers) {
- List<String> l = getCacheControlDirectives(headers);
- if(l.isEmpty()) {
- return null;
- }
- else {
- for (String direttiva : l) {
- if(direttiva!=null && direttiva.startsWith(HttpConstants.CACHE_STATUS_DIRECTIVE_MAX_AGE+"=") && !direttiva.endsWith("=")) {
- try {
- String age = direttiva.substring((HttpConstants.CACHE_STATUS_DIRECTIVE_MAX_AGE+"=").length(), direttiva.length());
- return Integer.valueOf(age);
- }catch(Exception t) {
- // ignore
- }
- }
- }
- return null;
- }
- }
-
- @Deprecated
- public static List<String> getDirectiveCacheControl(Map<String, String> headers){
- return getCacheControlDirectives(TransportUtils.convertToMapListValues(headers));
- }
- public static List<String> getCacheControlDirectives(Map<String, List<String>> headers){
-
- List<String> l = TransportUtils.getRawObject(headers, HttpConstants.CACHE_STATUS_HTTP_1_1);
- String cacheControl = null;
- if(l!=null && !l.isEmpty()) {
- cacheControl = l.get(0);
- }
-
- List<String> values = new ArrayList<>();
- if(cacheControl!=null) {
- if(cacheControl.contains(",")) {
- String [] tmp = cacheControl.split(",");
- for (int i = 0; i < tmp.length; i++) {
- values.add(tmp[i].trim());
- }
- }
- else {
- values.add(cacheControl);
- }
- }
-
- return values;
- }
-
- @Deprecated
- public static List<String> getDirectivePragma(Map<String, String> headers){
- return getPragmaDirectives(TransportUtils.convertToMapListValues(headers));
- }
- public static List<String> getPragmaDirectives(Map<String, List<String>> headers){
-
- List<String> l = TransportUtils.getRawObject(headers, HttpConstants.CACHE_STATUS_HTTP_1_0);
- String cacheControl = null;
- if(l!=null && !l.isEmpty()) {
- cacheControl = l.get(0);
- }
-
- List<String> values = new ArrayList<>();
- if(cacheControl!=null) {
- if(cacheControl.contains(",")) {
- String [] tmp = cacheControl.split(",");
- for (int i = 0; i < tmp.length; i++) {
- values.add(tmp[i].trim());
- }
- }
- else {
- values.add(cacheControl);
- }
- }
-
- return values;
- }
-
-
-
- public static void enableHttpUrlConnectionForwardRestrictedHeaders() {
- System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
- }
-
-
-
- public static void setChunkedStreamingMode(HttpURLConnection httpConn, int chunkLength, HttpRequestMethod httpMethod, String contentType) throws UtilsException{
-
- HttpBodyParameters params = new HttpBodyParameters(httpMethod, contentType);
-
- // Devo impostarlo solo se e' previsto un output
- if(params.isDoOutput()){
- httpConn.setChunkedStreamingMode(chunkLength);
- }
- }
-
- public static boolean isHttpBodyPermitted(boolean isRequest,HttpRequestMethod httpMethod, String contentType) throws UtilsException{
-
- HttpBodyParameters params = new HttpBodyParameters(httpMethod, contentType);
- if(isRequest){
- return params.isDoOutput();
- }
- else{
- return params.isDoInput();
- }
-
- }
-
- public static void setStream(HttpURLConnection httpConn, HttpRequestMethod httpMethod) throws UtilsException{
- setStream(httpConn, httpMethod, null);
- }
- public static void setStream(HttpURLConnection httpConn, HttpRequestMethod httpMethod, String contentType) throws UtilsException{
- try{
- HttpBodyParameters params = new HttpBodyParameters(httpMethod, contentType);
-
- setHttpMethod(httpConn, httpMethod);
- if(params.isDoOutput()){
- httpConn.setDoOutput(params.isDoOutput());
- }
- if(params.isDoInput()){
- httpConn.setDoInput(params.isDoInput());
- }
- }catch(Exception e){
- throw new UtilsException(e.getMessage(),e);
- }
- }
- public static void setHttpMethod(HttpURLConnection httpConn, HttpRequestMethod httpMethod) throws UtilsException {
- // NOTA: comunque l'invio di metodi PATCH,LINK,... funzionano solo con java 8
-
- try {
- if(httpMethod.isStandardMethod()) {
- httpConn.setRequestMethod(httpMethod.name());
- }
- else {
- // Fix errore:
- //java.net.ProtocolException: HTTP method PATCH doesn't support output
- // at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1081)
- try {
- Object objectModifyMethodField = httpConn;
-
- Class<?> classHttpsUrlConnectionImpl = getClassHttpsURLConnectionImpl(); // all'interno c'e' un delegate su cui deve essere impostato il metodo http
-
- // Change protected field "method" of public class HttpURLConnection
- // Nella classe HttpsURLConnectionImpl il field "method" non viene ereditato dalla superclasse ma deve essere modificato nell'oggetto 'delegate'
- if(classHttpsUrlConnectionImpl!=null && httpConn.getClass().isAssignableFrom(classHttpsUrlConnectionImpl)) {
- // Devo gestire il delegate
- /**System.out.println("GESTIONE HTTPS");*/
- objectModifyMethodField = readDelegateHttpsURLConnection(classHttpsUrlConnectionImpl, httpConn);
- }
-
- setProtectedFieldValue(HttpURLConnection.class, "method", objectModifyMethodField, httpMethod.name());
- /**System.out.println("DOPO '"+httpConn.getRequestMethod()+"'");*/
- } catch (Throwable ex) {
- throw new Exception("Unsupported Method '"+httpMethod+"' and set by reflection error: "+ex.getMessage(),ex);
- }
- }
- }catch(Exception e){
- throw new UtilsException(e.getMessage(),e);
- }
- }
- private static void setProtectedFieldValue(Class<?> clazz, String fieldName, Object object, Object newValue) throws Exception {
-
- /**System.out.println("SET IN '"+object.getClass().getName()+"'");*/
-
- Field field = getField(clazz, fieldName);
- field.setAccessible(true);
- field.set(object, newValue);
-
- /**System.out.println("SET OK IN '"+object.getClass().getName()+"' (field:"+field.getName()+"): "+field.get(object));*/
- }
- private static Field getField(Class<?> clazz, String fieldName) throws UtilsException {
- Field field = null;
- try {
- field = clazz.getDeclaredField(fieldName);
- }catch(Exception e) {
- Field [] f = clazz.getDeclaredFields();
- System.out.println("================= (size:"+f.length+" class:"+clazz.getName()+" fieldName:"+fieldName+") ==========================");
- for (int i = 0; i < f.length; i++) {
- System.out.println("NOME["+f[i].getName()+"] TIPO["+f[i].getType()+"]");
- }
- f = clazz.getFields();
- System.out.println("================= (FIELDS size:"+f.length+" class:"+clazz.getName()+" fieldName:"+fieldName+") ==========================");
- for (int i = 0; i < f.length; i++) {
- System.out.println("NOME["+f[i].getName()+"] TIPO["+f[i].getType()+"]");
- }
- throw new UtilsException(e.getMessage(),e);
- }
- return field;
- }
- private static Class<?> classHttpsURLConnectionImpl = null;
- private static Boolean classHttpsURLConnectionImplRead = null;
- private static synchronized void initClassHttpsURLConnectionImpl() {
- if(classHttpsURLConnectionImplRead==null) {
- try {
- classHttpsURLConnectionImpl = Class.forName("sun.net.www.protocol.https.HttpsURLConnectionImpl");
- }catch(Exception e) {
- System.out.println("Classe 'sun.net.www.protocol.https.HttpsURLConnectionImpl' non esistente: "+e.getMessage());
- } finally {
- classHttpsURLConnectionImplRead = true;
- }
- }
- }
- private static Class<?> getClassHttpsURLConnectionImpl() {
- if(classHttpsURLConnectionImplRead==null) {
- initClassHttpsURLConnectionImpl();
- }
- return classHttpsURLConnectionImpl;
- }
- private static Object readDelegateHttpsURLConnection(Class<?> classHttpsUrlConnectionImpl, HttpURLConnection httpConn) throws IllegalArgumentException, IllegalAccessException, UtilsException {
- Field field = getField(classHttpsUrlConnectionImpl, "delegate");
- field.setAccessible(true);
- Object fieldInstance = field.get(httpConn);
- /**System.out.println("Delegate '"+fieldInstance.getClass().getName()+"'");*/
- return fieldInstance;
- }
-
-
- /* ********* HTTP INVOKE ************ */
- // getHTTPResponse (no options)
-
- public static byte[] requestHTTPFile(String path) throws UtilsException{
- return requestHTTPFile(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- (HttpOptions[]) null);
- }
- public static byte[] requestHTTPFile(String path,int readTimeout,int connectTimeout) throws UtilsException{
- return requestHTTPFile(path, readTimeout, connectTimeout, null, null,
- (HttpOptions[]) null);
- }
- public static byte[] requestHTTPFile(String path,String username,String password) throws UtilsException{
- return requestHTTPFile(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- (HttpOptions[]) null);
- }
- public static byte[] requestHTTPFile(String path,int readTimeout,int connectTimeout,String username,String password) throws UtilsException{
- HttpResponse res = getHTTPResponse(path, readTimeout, connectTimeout, username, password,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static HttpResponse getHTTPResponse(String path) throws UtilsException{
- return getHTTPResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPResponse(String path,int readTimeout,int connectTimeout) throws UtilsException{
- return getHTTPResponse(path, readTimeout, connectTimeout, null, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPResponse(String path,String username,String password) throws UtilsException{
- return getHTTPResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- (HttpOptions[]) null);
- }
-
- public static HttpResponse getHTTPResponse(String path,int readTimeout,int connectTimeout,String username,String password) throws UtilsException{
- return getHTTPResponse(path, readTimeout, connectTimeout, username, password,
- (HttpOptions[]) null);
- }
-
-
- // getHTTPResponse (options)
-
- public static byte[] requestHTTPFile(String path,
- HttpOptions ... options) throws UtilsException{
- return requestHTTPFile(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- options);
- }
- public static byte[] requestHTTPFile(String path,int readTimeout,int connectTimeout,
- HttpOptions ... options) throws UtilsException{
- return requestHTTPFile(path, readTimeout, connectTimeout, null, null,
- options);
- }
- public static byte[] requestHTTPFile(String path,String username,String password,
- HttpOptions ... options) throws UtilsException{
- return requestHTTPFile(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- options);
- }
- public static byte[] requestHTTPFile(String path,int readTimeout,int connectTimeout,String username,String password,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPResponse(path, readTimeout, connectTimeout, username, password,
- options);
- return res.getContent();
- }
- public static HttpResponse getHTTPResponse(String path,
- HttpOptions ... options) throws UtilsException{
- return getHTTPResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- options);
- }
- public static HttpResponse getHTTPResponse(String path,int readTimeout,int connectTimeout,
- HttpOptions ... options) throws UtilsException{
- return getHTTPResponse(path, readTimeout, connectTimeout, null, null,
- options);
- }
- public static HttpResponse getHTTPResponse(String path,String username,String password,
- HttpOptions ... options) throws UtilsException{
- return getHTTPResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- options);
- }
- public static HttpResponse getHTTPResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- HttpOptions ... options) throws UtilsException{
-
- HttpRequest httpRequest = new HttpRequest();
- httpRequest.setUrl(path);
- httpRequest.setReadTimeout(readTimeout);
- httpRequest.setConnectTimeout(connectTimeout);
- httpRequest.setUsername(username);
- httpRequest.setPassword(password);
- httpRequest.setMethod(HttpRequestMethod.GET);
-
- if(options!=null && options.length>0) {
- for (HttpOptions httpOptions : options) {
- httpOptions.fill(httpRequest);
- }
- }
-
- HttpResponse response = null;
- try{
- response = httpInvoke(httpRequest);
-
- }catch(Exception e){
- throw new UtilsException("Utilities.requestHTTPFile error "+e.getMessage(),e);
- }
- if(response.getResultHTTPOperation()==404){
- throw new UtilsException("404");
- }
- return response;
-
- }
-
-
-
-
-
- // getHTTPSResponse (no options)
-
- public static byte[] requestHTTPSFile(String path,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
-
- public static HttpResponse getHTTPSResponse(String path,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- (HttpOptions[]) null);
- }
-
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- (HttpOptions[]) null);
- }
-
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- (HttpOptions[]) null);
- }
-
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- (HttpOptions[]) null);
- }
-
-
- // getHTTPSResponse (options)
-
- public static byte[] requestHTTPSFile(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- options);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- options);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- options);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- options);
- return res.getContent();
- }
-
- public static HttpResponse getHTTPSResponse(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- options);
- }
-
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- options);
- }
-
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, ocspValidator,
- options);
- }
-
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, trustStorePassword, trustStoreType,
- null, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, trustStorePassword, trustStoreType,
- null, ocspValidator,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
-
- HttpRequest httpRequest = new HttpRequest();
- httpRequest.setUrl(path);
- httpRequest.setReadTimeout(readTimeout);
- httpRequest.setConnectTimeout(connectTimeout);
- httpRequest.setUsername(username);
- httpRequest.setPassword(password);
- httpRequest.setMethod(HttpRequestMethod.GET);
-
- httpRequest.setTrustStorePath(trustStore);
- httpRequest.setTrustStorePassword(trustStorePassword);
- httpRequest.setTrustStoreType(trustStoreType);
- httpRequest.setCrlPath(crlPath);
- httpRequest.setOcspValidator(ocspValidator);
-
- if(options!=null && options.length>0) {
- for (HttpOptions httpOptions : options) {
- httpOptions.fill(httpRequest);
- }
- }
-
- HttpResponse response = null;
- try{
- response = httpInvoke(httpRequest);
-
- }catch(Exception e){
- throw new UtilsException("Utilities.requestHTTPFile error "+e.getMessage(),e);
- }
- if(response.getResultHTTPOperation()==404){
- throw new UtilsException("404");
- }
- return response;
-
- }
-
-
-
- // getHTTPSResponse (no options)
-
- public static byte[] requestHTTPSFile(String path,
- KeyStore trustStore) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, null, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- KeyStore trustStore, CertStore crlStore) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, crlStore, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- KeyStore trustStore, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, null, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, crlStore, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, null, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, CertStore crlStore) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, crlStore, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, null, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, crlStore, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,String username,String password,
- KeyStore trustStore) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, null, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- KeyStore trustStore, CertStore crlStore) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, crlStore, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- KeyStore trustStore, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, null, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, crlStore, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, null, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, CertStore crlStore) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, crlStore, null,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, null, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, crlStore, ocspValidator,
- (HttpOptions[]) null);
- return res.getContent();
- }
-
- public static HttpResponse getHTTPSResponse(String path,
- KeyStore trustStore) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, null, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,
- KeyStore trustStore, CertStore crlStore) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, crlStore, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,
- KeyStore trustStore, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, null, ocspValidator,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, crlStore, ocspValidator,
- (HttpOptions[]) null);
- }
-
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, null, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, CertStore crlStore) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, crlStore, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, null, ocspValidator,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, crlStore, ocspValidator,
- (HttpOptions[]) null);
- }
-
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- KeyStore trustStore) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, null, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- KeyStore trustStore, CertStore crlStore) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, crlStore, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- KeyStore trustStore, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, null, ocspValidator,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, crlStore, ocspValidator,
- (HttpOptions[]) null);
- }
-
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, null, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, CertStore crlStore) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, crlStore, null,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, null, ocspValidator,
- (HttpOptions[]) null);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, crlStore, ocspValidator,
- (HttpOptions[]) null);
- }
-
-
- // getHTTPSResponse (options)
-
- public static byte[] requestHTTPSFile(String path,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, null, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, crlStore, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- KeyStore trustStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, null, ocspValidator,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, crlStore, ocspValidator,
- options);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, null, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, crlStore, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, null, ocspValidator,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, crlStore, ocspValidator,
- options);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,String username,String password,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, null, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, crlStore, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- KeyStore trustStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, null, ocspValidator,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,String username,String password,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, crlStore, ocspValidator,
- options);
- return res.getContent();
- }
-
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, null, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, crlStore, null,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, null, ocspValidator,
- options);
- return res.getContent();
- }
- public static byte[] requestHTTPSFile(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse(path, readTimeout, connectTimeout, username, password,
- trustStore, crlStore, ocspValidator,
- options);
- return res.getContent();
- }
-
- public static HttpResponse getHTTPSResponse(String path,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, null, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, crlStore, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,
- KeyStore trustStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, null, ocspValidator,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, crlStore, ocspValidator,
- options);
- }
-
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, null, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, crlStore, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, null, ocspValidator,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, readTimeout, connectTimeout, null, null,
- trustStore, crlStore, ocspValidator,
- options);
- }
-
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, null, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, crlStore, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- KeyStore trustStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, null, ocspValidator,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,String username,String password,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, crlStore, ocspValidator,
- options);
- }
-
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, null, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, crlStore, null,
- options);
- }
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse(path,readTimeout,connectTimeout,username,password,
- trustStore, null, ocspValidator,
- options);
- }
-
- public static HttpResponse getHTTPSResponse(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, CertStore crlStore, IOCSPValidator ocspValidator,
- HttpOptions ... options) throws UtilsException{
-
- HttpRequest httpRequest = new HttpRequest();
- httpRequest.setUrl(path);
- httpRequest.setReadTimeout(readTimeout);
- httpRequest.setConnectTimeout(connectTimeout);
- httpRequest.setUsername(username);
- httpRequest.setPassword(password);
- httpRequest.setMethod(HttpRequestMethod.GET);
-
- httpRequest.setTrustStore(trustStore);
- httpRequest.setCrlStore(crlStore);
- httpRequest.setOcspValidator(ocspValidator);
-
- if(options!=null && options.length>0) {
- for (HttpOptions httpOptions : options) {
- httpOptions.fill(httpRequest);
- }
- }
-
- HttpResponse response = null;
- try{
- response = httpInvoke(httpRequest);
-
- }catch(Exception e){
- throw new UtilsException("Utilities.requestHTTPFile error "+e.getMessage(),e);
- }
- if(response.getResultHTTPOperation()==404){
- throw new UtilsException("404");
- }
- return response;
-
- }
-
-
-
-
- // getHTTPSResponse_trustAllCerts (no options)
-
- public static byte[] requestHTTPSFile_trustAllCerts(String path) throws UtilsException{
- return requestHTTPSFile_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- (HttpOptions[]) null);
- }
-
- public static byte[] requestHTTPSFile_trustAllCerts(String path,int readTimeout,int connectTimeout) throws UtilsException{
- return requestHTTPSFile_trustAllCerts(path, readTimeout, connectTimeout, null, null,
- (HttpOptions[]) null);
- }
-
- public static byte[] requestHTTPSFile_trustAllCerts(String path,String username,String password) throws UtilsException{
- return requestHTTPSFile_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- (HttpOptions[]) null);
- }
- public static byte[] requestHTTPSFile_trustAllCerts(String path,int readTimeout,int connectTimeout,String username,String password) throws UtilsException{
- HttpResponse res = getHTTPSResponse_trustAllCerts(path, readTimeout, connectTimeout, username, password,
- (HttpOptions[]) null);
- return res.getContent();
- }
-
- public static HttpResponse getHTTPSResponse_trustAllCerts(String path) throws UtilsException{
- return getHTTPSResponse_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- (HttpOptions[]) null);
- }
-
- public static HttpResponse getHTTPSResponse_trustAllCerts(String path,int readTimeout,int connectTimeout) throws UtilsException{
- return getHTTPSResponse_trustAllCerts(path, readTimeout, connectTimeout, null, null,
- (HttpOptions[]) null);
- }
-
- public static HttpResponse getHTTPSResponse_trustAllCerts(String path,String username,String password) throws UtilsException{
- return getHTTPSResponse_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- (HttpOptions[]) null);
- }
-
- public static HttpResponse getHTTPSResponse_trustAllCerts(String path,int readTimeout,int connectTimeout,String username,String password) throws UtilsException{
- return getHTTPSResponse_trustAllCerts(path, readTimeout, connectTimeout, username, password,
- (HttpOptions[]) null);
- }
-
-
- // getHTTPSResponse_trustAllCerts (options)
-
- public static byte[] requestHTTPSFile_trustAllCerts(String path,
- HttpOptions ... options) throws UtilsException{
- return requestHTTPSFile_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- options);
- }
-
- public static byte[] requestHTTPSFile_trustAllCerts(String path,int readTimeout,int connectTimeout,
- HttpOptions ... options) throws UtilsException{
- return requestHTTPSFile_trustAllCerts(path, readTimeout, connectTimeout, null, null,
- options);
- }
-
- public static byte[] requestHTTPSFile_trustAllCerts(String path,String username,String password,
- HttpOptions ... options) throws UtilsException{
- return requestHTTPSFile_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- options);
- }
- public static byte[] requestHTTPSFile_trustAllCerts(String path,int readTimeout,int connectTimeout,String username,String password,
- HttpOptions ... options) throws UtilsException{
- HttpResponse res = getHTTPSResponse_trustAllCerts(path, readTimeout, connectTimeout, username, password,
- options);
- return res.getContent();
- }
-
- public static HttpResponse getHTTPSResponse_trustAllCerts(String path,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- options);
- }
-
- public static HttpResponse getHTTPSResponse_trustAllCerts(String path,int readTimeout,int connectTimeout,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse_trustAllCerts(path, readTimeout, connectTimeout, null, null,
- options);
- }
-
- public static HttpResponse getHTTPSResponse_trustAllCerts(String path,String username,String password,
- HttpOptions ... options) throws UtilsException{
- return getHTTPSResponse_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- options);
- }
-
- public static HttpResponse getHTTPSResponse_trustAllCerts(String path,int readTimeout,int connectTimeout,String username,String password,
- HttpOptions ... options) throws UtilsException{
-
- HttpRequest httpRequest = new HttpRequest();
- httpRequest.setUrl(path);
- httpRequest.setReadTimeout(readTimeout);
- httpRequest.setConnectTimeout(connectTimeout);
- httpRequest.setUsername(username);
- httpRequest.setPassword(password);
- httpRequest.setMethod(HttpRequestMethod.GET);
-
- httpRequest.setTrustAllCerts(true);
-
- if(options!=null && options.length>0) {
- for (HttpOptions httpOptions : options) {
- httpOptions.fill(httpRequest);
- }
- }
-
- HttpResponse response = null;
- try{
- response = httpInvoke(httpRequest);
-
- }catch(Exception e){
- throw new UtilsException("Utilities.requestHTTPFile error "+e.getMessage(),e);
- }
- if(response.getResultHTTPOperation()==404){
- throw new UtilsException("404");
- }
- return response;
-
- }
-
- private static final String TEST_FILE_ORIGIN = "file://";
-
- public static HttpResponse httpInvoke(HttpRequest request) throws UtilsException{
-
- String path = request.getUrl();
- if(path!=null && path.startsWith(TEST_FILE_ORIGIN)){
- String filePath = path.substring(TEST_FILE_ORIGIN.length());
- File f = new File(filePath);
- if(!f.exists()){
- throw new UtilsException("404");
- }
- if(!f.canRead()){
- throw new UtilsException("404");
- }
- HttpResponse response = new HttpResponse();
- try{
- response.setContent(FileSystemUtilities.readBytesFromFile(f));
- }catch(Exception e){
- throw new UtilsException(e.getMessage(),e);
- }
- response.setResultHTTPOperation(200);
- response.setContentType(MimeTypes.getInstance().getMimeType(f));
- return response;
- }
-
-
- InputStream is = null;
- ByteArrayOutputStream outResponse = null;
- InputStream finKeyStore = null;
- InputStream finTrustStore = null;
- try {
- SSLContext sslContext = null;
- OCSPTrustManager ocspTrustManager = null;
-
- if(request.isTrustAllCerts() || request.getTrustStore()!=null || request.getTrustStorePath()!=null){
-
- KeyManager[] km = null;
- TrustManager[] tm = null;
-
- // Autenticazione CLIENT
- if(request.getKeyStore()!=null || request.getKeyStorePath()!=null){
- String location = null;
- try {
- location = request.getKeyStorePath(); // per debug
-
- boolean hsmKeystore = false;
- HSMManager hsmManager = HSMManager.getInstance();
- String hsmType = null;
- if(hsmManager!=null) {
- if(request.getKeyStore()!=null) {
- hsmType = request.getKeyStore().getType();
- }
- else {
- hsmType = request.getKeyStoreType();
- }
- if(hsmType!=null) {
- hsmKeystore = hsmManager.existsKeystoreType(hsmType);
- if(!hsmKeystore) {
- hsmType = null;
- }
- }
- }
-
- KeyStore keystore = null;
- KeyStore keystoreParam = null;
- @SuppressWarnings("unused")
- Provider keystoreProvider = null;
- if(request.getKeyStore()!=null) {
- keystoreParam = request.getKeyStore();
- if(hsmKeystore) {
- keystoreProvider = keystoreParam.getProvider();
- }
- }
- else {
- if(hsmKeystore) {
- org.openspcoop2.utils.certificate.KeyStore ks = hsmManager.getKeystore(hsmType);
- if(ks==null) {
- throw new UtilsException("Keystore not found");
- }
- keystoreParam = ks.getKeystore();
- keystoreProvider = keystoreParam.getProvider();
- }
- else {
- File file = new File(location);
- if(file.exists()) {
- finKeyStore = new FileInputStream(file);
- }
- else {
- finKeyStore = SSLUtilities.class.getResourceAsStream(location);
- }
- if(finKeyStore == null) {
- throw new UtilsException("Keystore not found");
- }
- String tipo = request.getKeyStoreType()!=null ? request.getKeyStoreType() : KeystoreType.JKS.getNome();
- keystoreParam = KeystoreUtils.readKeystore(finKeyStore, tipo, request.getKeyStorePassword());
- }
- }
-
- boolean oldMethodKeyAlias = false; // Questo metodo non funzirequestonava con PKCS11
- if(oldMethodKeyAlias && request.getKeyAlias()!=null) {
- Key key = keystoreParam.getKey(request.getKeyAlias(), request.getKeyPassword().toCharArray());
- if(key==null) {
- throw new UtilsException("Key with alias '"+request.getKeyAlias()+"' not found");
- }
- if(hsmKeystore) {
- // uso un JKS come tmp
- keystore = KeyStore.getInstance(KeystoreType.JKS.getNome());
- }
- else {
- keystore = KeyStore.getInstance(request.getKeyStoreType());
- }
- keystore.load(null); // inizializza il keystore
- keystore.setKeyEntry(request.getKeyAlias(), key,
- request.getKeyPassword().toCharArray()!=null ? request.getKeyPassword().toCharArray() : "".toCharArray(),
- keystoreParam.getCertificateChain(request.getKeyAlias()));
- }
- else {
- keystore = keystoreParam;
- }
-
- KeyManagerFactory keyManagerFactory = null;
- // NO: no such algorithm: SunX509 for provider SunPKCS11-xxx
- /**if(keystoreProvider!=null) {
- // keyManagerFactory = KeyManagerFactory.getInstance(sslConfig.getKeyManagementAlgorithm(), keystoreProvider);
- //}
- //else {*/
- keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
-
- keyManagerFactory.init(keystore, request.getKeyPassword().toCharArray()!=null ? request.getKeyPassword().toCharArray() : "".toCharArray());
- km = keyManagerFactory.getKeyManagers();
- if(!oldMethodKeyAlias && request.getKeyAlias()!=null &&
- km!=null && km.length>0 && km[0]!=null && km[0] instanceof X509KeyManager) {
-
- String alias = request.getKeyAlias();
-
- // Fix case insensitive
- Enumeration<String> enAliases = keystore.aliases();
- if(enAliases!=null) {
- while (enAliases.hasMoreElements()) {
- String a = enAliases.nextElement();
- if(a.equalsIgnoreCase(alias)) {
- alias = a; // uso quello presente nel keystore
- break;
- }
- }
- }
-
- X509KeyManager wrapperX509KeyManager = new SSLX509ManagerForcedClientAlias(alias, (X509KeyManager)km[0] );
- km[0] = wrapperX509KeyManager;
-
- }
- }catch(Throwable e) {
- if(location!=null) {
- throw new UtilsException("["+location+"] "+e.getMessage(),e);
- }
- else {
- throw new UtilsException(e.getMessage(),e);
- }
- }
- }
-
- // Autenticazione Server
- KeyStore truststore = null;
- if(request.isTrustAllCerts()) {
- tm = SSLUtilities.getTrustAllCertsManager();
- }
- else {
-
- boolean hsmTruststore = false;
- HSMManager hsmManager = HSMManager.getInstance();
- if(hsmManager!=null) {
- if(request.getTrustStore()!=null) {
- hsmTruststore = request.isTrustStoreHsm();
- }
- else {
- if(request.getTrustStoreType()!=null && hsmManager.existsKeystoreType(request.getTrustStoreType())) {
- hsmTruststore = true;
- }
- }
- }
-
- @SuppressWarnings("unused")
- Provider truststoreProvider = null;
- if(request.getTrustStore()!=null ) {
- truststore = request.getTrustStore();
- if(hsmTruststore) {
- truststoreProvider = truststore.getProvider();
- }
- }
- else {
- if(request.getTrustStoreType()==null) {
- throw new UtilsException("Ssl TrustStore type required");
- }
- if(request.getTrustStorePassword()==null) {
- throw new UtilsException("Ssl TrustStore password required");
- }
- if(hsmTruststore) {
- org.openspcoop2.utils.certificate.KeyStore ks = hsmManager.getKeystore(request.getTrustStoreType());
- if(ks==null) {
- throw new UtilsException("Keystore not found");
- }
- truststore = ks.getKeystore();
- truststoreProvider = truststore.getProvider();
- }
- else {
- File file = new File(request.getTrustStorePath());
- if(file.exists()) {
- finTrustStore = new FileInputStream(file);
- }
- else {
- finTrustStore = SSLUtilities.class.getResourceAsStream(request.getTrustStorePath());
- }
- if(finTrustStore == null) {
- throw new UtilsException("Keystore ["+request.getTrustStorePath()+"] not found");
- }
- truststore = KeystoreUtils.readKeystore(finTrustStore, request.getTrustStoreType(), request.getTrustStorePassword());
- }
- }
-
- TrustManagerFactory trustManagerFactory = null;
- // NO: no such algorithm: PKIX for provider SunPKCS11-xxx
- /**if(truststoreProvider!=null) {
- // trustManagerFactory = TrustManagerFactory.getInstance("PKIX", truststoreProvider);
- //}
- //else {*/
- trustManagerFactory = TrustManagerFactory.getInstance("PKIX");
-
- Provider sigProvider = null;
- CertPathTrustManagerParameters params = SSLUtilities.buildCertPathTrustManagerParameters(truststore, request.getCrlStore(), request.getCrlPath(), sigProvider);
- trustManagerFactory.init(params);
- tm = trustManagerFactory.getTrustManagers();
- }
- IOCSPValidator ocspValidator = request.getOcspValidator();
- if(truststore!=null && ocspValidator==null && request.getOcspPolicy()!=null && StringUtils.isNotEmpty(request.getOcspPolicy())) {
- Logger log = LoggerWrapperFactory.getLogger(HttpUtilities.class);
- IOCSPValidatorBuilder builder = (IOCSPValidatorBuilder) new Loader().newInstance("org.openspcoop2.utils.certificate.ocsp.OCSPValidatorBuilderImpl");
- ocspValidator = builder.newInstance(log, truststore, request.getCrlPath(), request.getOcspPolicy());
- }
- if(ocspValidator!=null) {
- tm = OCSPTrustManager.wrap(tm, ocspValidator);
- ocspTrustManager = OCSPTrustManager.read(tm);
- ocspValidator.setOCSPTrustManager(ocspTrustManager);
- }
-
- sslContext = SSLContext.getInstance(SSLUtilities.getSafeDefaultProtocol()); // ritorna l'ultima versione disponibile
-
- if(request.isSecureRandom()) {
- RandomGenerator randomGenerator = null;
- if(request.getSecureRandomAlgorithm()!=null && !"".equals(request.getSecureRandomAlgorithm())) {
- randomGenerator = new RandomGenerator(true, request.getSecureRandomAlgorithm());
- }
- else {
- randomGenerator = new RandomGenerator(true);
- }
- java.security.SecureRandom secureRandom = (java.security.SecureRandom) randomGenerator.getRandomEngine();
- sslContext.init(km, tm, secureRandom);
- }
- else {
- sslContext.init(km, tm, null);
- }
- }
-
- if(request.getUrl()==null){
- throw new UtilsException("Url required");
- }
- String connectionUrl = request.getUrl();
- if(request.getForwardProxyEndpoint()!=null && request.getForwardProxyConfig()!=null) {
- Map<String, List<String>> parameters = new HashMap<>();
- if(request.getForwardProxyConfig().getQuery()!=null) {
- if(request.getForwardProxyConfig().isQueryBase64()) {
- String base64Location = Base64Utilities.encodeAsString(connectionUrl.getBytes());
- TransportUtils.addParameter(parameters,request.getForwardProxyConfig().getQuery(), base64Location);
- }
- else {
- TransportUtils.addParameter(parameters,request.getForwardProxyConfig().getQuery(), connectionUrl);
- }
- }
- else if(request.getForwardProxyConfig().getHeader()!=null) {
- if(request.getForwardProxyConfig().isHeaderBase64()) {
- String base64Location = Base64Utilities.encodeAsString(connectionUrl.getBytes());
- request.addHeader(request.getForwardProxyConfig().getHeader(), base64Location);
- }
- else {
- request.addHeader(request.getForwardProxyConfig().getHeader(), connectionUrl);
- }
- }
- boolean encodeBaseLocation = true; // la base location può contenere dei parametri
- connectionUrl = TransportUtils.buildUrlWithParameters(parameters, request.getForwardProxyEndpoint(), encodeBaseLocation, LoggerWrapperFactory.getLogger(HttpUtilities.class));
- }
- URL url = new URL(connectionUrl);
- URLConnection connection = null;
- if(request.getProxyType()==null){
- connection = url.openConnection();
- }
- else {
- if(request.getProxyHostname()==null) {
- throw new UtilsException("Proxy require a hostname");
- }
- Proxy proxy = new Proxy(request.getProxyType(), new InetSocketAddress(request.getProxyHostname(), request.getProxyPort()));
- connection = url.openConnection(proxy);
-
- // Proxy Authentication BASIC
- if(request.getProxyUsername()!=null && request.getProxyPassword()!=null){
- String authentication = request.getProxyUsername() + ":" + request.getProxyPassword();
- authentication = HttpConstants.AUTHORIZATION_PREFIX_BASIC + Base64Utilities.encodeAsString(authentication.getBytes());
- request.addHeader(HttpConstants.PROXY_AUTHORIZATION,authentication);
- }
- }
- HttpURLConnection httpConn = (HttpURLConnection) connection;
- if(sslContext!=null) {
-
- HttpsURLConnection httpsConn = (HttpsURLConnection) httpConn;
- httpsConn.setSSLSocketFactory(sslContext.getSocketFactory());
- if(!request.isHostnameVerifier()) {
- SSLHostNameVerifierDisabled disabilitato = new SSLHostNameVerifierDisabled(LoggerWrapperFactory.getLogger(HttpUtilities.class));
- httpsConn.setHostnameVerifier(disabilitato);
- }
- }
- String contentType = request.getContentType();
- if(contentType!=null){
- httpConn.setRequestProperty(HttpConstants.CONTENT_TYPE,contentType);
- }
- else if(request.getContent()!=null){
- String ct = request.getHeaderFirstValue(HttpConstants.CONTENT_TYPE);
- if(ct==null || StringUtils.isEmpty(ct)) {
- throw new UtilsException("Content require a Content Type");
- }
- else {
- contentType = ct; // negli header verra impostato sotto
- }
- }
-
- httpConn.setConnectTimeout(request.getConnectTimeout());
- httpConn.setReadTimeout(request.getReadTimeout());
-
- if(request.getFollowRedirects()!=null) {
- httpConn.setInstanceFollowRedirects(request.getFollowRedirects());
- }
- else {
- httpConn.setInstanceFollowRedirects(false);
- }
-
- if(request.getUsername()!=null && request.getPassword()!=null){
- String authentication = request.getUsername() + ":" + request.getPassword();
- authentication = HttpConstants.AUTHORIZATION_PREFIX_BASIC + Base64Utilities.encodeAsString(authentication.getBytes());
- httpConn.setRequestProperty(HttpConstants.AUTHORIZATION,authentication);
- }
-
- Map<String, List<String>> requestHeaders = request.getHeadersValues();
- if(requestHeaders!=null && requestHeaders.size()>0){
- Iterator<String> itReq = requestHeaders.keySet().iterator();
- while (itReq.hasNext()) {
- String key = itReq.next();
- List<String> values = requestHeaders.get(key);
- if(values!=null && !values.isEmpty()) {
- for (String value : values) {
- httpConn.addRequestProperty(key, value);
- }
- }
- }
- }
-
- boolean sendThrottling = false;
- if(request.getThrottlingSendByte()!=null && request.getThrottlingSendByte()>0 &&
- request.getThrottlingSendMs()!=null && request.getThrottlingSendMs()>0) {
- sendThrottling = true;
- }
-
- if(request.getMethod()==null){
- throw new UtilsException("HttpMethod required");
- }
- if(sendThrottling || request.isForceTransferEncodingChunked()) {
- httpConn.setChunkedStreamingMode(0);
- }
- setStream(httpConn, request.getMethod(), contentType);
- HttpBodyParameters httpContent = new HttpBodyParameters(request.getMethod(), contentType);
- // Spedizione byte
- if(httpContent.isDoOutput() && request.getContent() != null){
- OutputStream out = httpConn.getOutputStream();
- /**System.out.println("Classe '"+out.getClass().getName()+"'");*/
- if(sendThrottling) {
- int lengthSendContent = request.getContent().length;
- for (int i = 0; i < lengthSendContent; ) {
- int length = request.getThrottlingSendByte();
- int remaining = lengthSendContent-i;
- if(remaining<length) {
- length = remaining;
- }
- out.write(request.getContent(),i,length);
- i = i+length;
- out.flush();
- /**System.out.println("Spediti "+length+" bytes");*/
- Utilities.sleep(request.getThrottlingSendMs());
- }
- }
- else {
- out.write(request.getContent());
- }
- out.flush();
- out.close();
- }
- else if(httpContent.isDoOutput() && request.getContentStream() != null){
- OutputStream out = httpConn.getOutputStream();
- CopyStream.copy(request.getContentStream(), out);
- }
-
- HttpResponse response = new HttpResponse();
-
- // Ricezione header
- Map<String, List<String>> mapHeaderHttpResponse = httpConn.getHeaderFields();
- if(mapHeaderHttpResponse!=null && mapHeaderHttpResponse.size()>0){
- Iterator<String> itHttpResponse = mapHeaderHttpResponse.keySet().iterator();
- while(itHttpResponse.hasNext()){
- String keyHttpResponse = itHttpResponse.next();
- List<String> valueHttpResponse = mapHeaderHttpResponse.get(keyHttpResponse);
- if(keyHttpResponse==null){ // Check per evitare la coppia che ha come chiave null e come valore HTTP OK 200
- keyHttpResponse=HttpConstants.RETURN_CODE;
- }
- response.addHeader(keyHttpResponse, valueHttpResponse);
- }
- }
-
- // ContentType Risposta
- if(response.getHeadersValues()!=null && !response.getHeadersValues().isEmpty()){
- response.setContentType(response.getHeaderFirstValue(HttpConstants.CONTENT_TYPE));
- }
- // Ricezione Result HTTP Code
- int resultHTTPOperation = httpConn.getResponseCode();
- response.setResultHTTPOperation(resultHTTPOperation);
-
- // Ricezione Risposta
- if(httpContent.isDoInput()){
- outResponse = new ByteArrayOutputStream();
- if(resultHTTPOperation>399){
- is = httpConn.getErrorStream();
- if(is==null){
- is = httpConn.getInputStream();
- }
- }else{
- is = httpConn.getInputStream();
- if(is==null){
- is = httpConn.getErrorStream();
- }
- }
- CopyStream.copy(is, outResponse);
- is.close();
- outResponse.flush();
- outResponse.close();
- response.setContent(outResponse.toByteArray());
- }
-
- // fine HTTP.
- httpConn.disconnect();
-
- // certificati server
- if(ocspTrustManager!=null) {
- response.setServerCertificate(ocspTrustManager.getPeerCertificates());
- }
-
- return response;
- }catch(Exception e){
- try{
- if(is!=null)
- is.close();
- }catch(Exception eis){
- // ignore
- }
- try{
- if(outResponse!=null)
- outResponse.close();
- }catch(Exception eis){
- // ignore
- }
- throw new UtilsException(e.getMessage(),e);
- }
- finally{
- try{
- if(finKeyStore!=null){
- finKeyStore.close();
- }
- }catch(Exception e){
- // ignore
- }
- try{
- if(finTrustStore!=null){
- finTrustStore.close();
- }
- }catch(Exception e){
- // close
- }
- }
- }
-
-
- /* ********* CHECK ************ */
-
- // check (no options)
-
- public static void check(String path) throws UtilsException,HttpUtilsException{
- check(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- (HttpOptions[]) null);
- }
- public static void check(String path,int readTimeout,int connectTimeout) throws UtilsException,HttpUtilsException{
- check(path, readTimeout, connectTimeout, null, null,
- (HttpOptions[]) null);
- }
- public static void check(String path,String username,String password) throws UtilsException,HttpUtilsException{
- check(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- (HttpOptions[]) null);
- }
- public static void check(String path,int readTimeout,int connectTimeout,String username,String password) throws UtilsException,HttpUtilsException{
- check(path, readTimeout, connectTimeout, username, password,
- (HttpOptions[]) null);
- }
-
- // check (options)
-
- public static void check(String path,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- check(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- options);
- }
- public static void check(String path,int readTimeout,int connectTimeout,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- check(path, readTimeout, connectTimeout, null, null,
- options);
- }
- public static void check(String path,String username,String password,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- check(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- options);
- }
- public static void check(String path,int readTimeout,int connectTimeout,String username,String password,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
-
- HttpRequest httpRequest = new HttpRequest();
- httpRequest.setUrl(path);
- httpRequest.setReadTimeout(readTimeout);
- httpRequest.setConnectTimeout(connectTimeout);
- httpRequest.setUsername(username);
- httpRequest.setPassword(password);
- httpRequest.setMethod(HttpRequestMethod.GET);
-
- if(options!=null && options.length>0) {
- for (HttpOptions httpOptions : options) {
- httpOptions.fill(httpRequest);
- }
- }
-
- check(httpRequest);
-
- }
-
-
-
-
- // checkHTTPS (no options)
-
- public static void checkHTTPS(String path,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null,
- (HttpOptions[]) null);
- }
- public static void checkHTTPS(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath,
- (HttpOptions[]) null);
- }
-
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null,
- (HttpOptions[]) null);
- }
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath,
- (HttpOptions[]) null);
- }
-
- public static void checkHTTPS(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null,
- (HttpOptions[]) null);
- }
- public static void checkHTTPS(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath,
- (HttpOptions[]) null);
- }
-
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType) throws UtilsException,HttpUtilsException{
- checkHTTPS(path,readTimeout,connectTimeout,username,password,
- trustStore, trustStorePassword, trustStoreType,
- null,
- (HttpOptions[]) null);
- }
-
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath) throws UtilsException,HttpUtilsException{
- checkHTTPS(path,readTimeout,connectTimeout,username,password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath,
- (HttpOptions[]) null);
- }
-
-
- // checkHTTPS (options)
-
- public static void checkHTTPS(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null,
- options);
- }
- public static void checkHTTPS(String path,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath,
- options);
- }
-
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- null,
- options);
- }
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, readTimeout, connectTimeout, null, null,
- trustStore, trustStorePassword, trustStoreType,
- crlPath,
- options);
- }
-
- public static void checkHTTPS(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- null,
- options);
- }
- public static void checkHTTPS(String path,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, trustStorePassword, trustStoreType,
- crlPath,
- options);
- }
-
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path,readTimeout,connectTimeout,username,password,
- trustStore, trustStorePassword, trustStoreType,
- null,
- options);
- }
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,String username,String password,
- String trustStore, String trustStorePassword, String trustStoreType,
- String crlPath,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
-
- HttpRequest httpRequest = new HttpRequest();
- httpRequest.setUrl(path);
- httpRequest.setReadTimeout(readTimeout);
- httpRequest.setConnectTimeout(connectTimeout);
- httpRequest.setUsername(username);
- httpRequest.setPassword(password);
- httpRequest.setMethod(HttpRequestMethod.GET);
-
- httpRequest.setTrustStorePath(trustStore);
- httpRequest.setTrustStorePassword(trustStorePassword);
- httpRequest.setTrustStoreType(trustStoreType);
- httpRequest.setCrlPath(crlPath);
-
- if(options!=null && options.length>0) {
- for (HttpOptions httpOptions : options) {
- httpOptions.fill(httpRequest);
- }
- }
-
- check(httpRequest);
-
- }
-
-
-
-
-
- // checkHTTPS (no options)
-
- public static void checkHTTPS(String path,
- KeyStore trustStore) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, null,
- (HttpOptions[]) null);
- }
- public static void checkHTTPS(String path,
- KeyStore trustStore, CertStore crlStore) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, crlStore,
- (HttpOptions[]) null);
- }
-
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, readTimeout, connectTimeout, null, null,
- trustStore, null,
- (HttpOptions[]) null);
- }
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, CertStore crlStore) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, readTimeout, connectTimeout, null, null,
- trustStore, crlStore,
- (HttpOptions[]) null);
- }
-
- public static void checkHTTPS(String path,String username,String password,
- KeyStore trustStore) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, null,
- (HttpOptions[]) null);
- }
- public static void checkHTTPS(String path,String username,String password,
- KeyStore trustStore, CertStore crlStore) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, crlStore,
- (HttpOptions[]) null);
- }
-
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore) throws UtilsException,HttpUtilsException{
- checkHTTPS(path,readTimeout,connectTimeout,username,password,
- trustStore, null,
- (HttpOptions[]) null);
- }
-
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, CertStore crlStore) throws UtilsException,HttpUtilsException{
- checkHTTPS(path,readTimeout,connectTimeout,username,password,
- trustStore, crlStore,
- (HttpOptions[]) null);
- }
-
-
-
- // checkHTTPS (options)
-
- public static void checkHTTPS(String path,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, null,
- options);
- }
- public static void checkHTTPS(String path,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- trustStore, crlStore,
- options);
- }
-
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, readTimeout, connectTimeout, null, null,
- trustStore, null,
- options);
- }
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, readTimeout, connectTimeout, null, null,
- trustStore, crlStore,
- options);
- }
-
- public static void checkHTTPS(String path,String username,String password,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, null,
- options);
- }
- public static void checkHTTPS(String path,String username,String password,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- trustStore, crlStore,
- options);
- }
-
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- checkHTTPS(path,readTimeout,connectTimeout,username,password,
- trustStore, null,
- options);
- }
-
- public static void checkHTTPS(String path,int readTimeout,int connectTimeout,String username,String password,
- KeyStore trustStore, CertStore crlStore,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
-
- HttpRequest httpRequest = new HttpRequest();
- httpRequest.setUrl(path);
- httpRequest.setReadTimeout(readTimeout);
- httpRequest.setConnectTimeout(connectTimeout);
- httpRequest.setUsername(username);
- httpRequest.setPassword(password);
- httpRequest.setMethod(HttpRequestMethod.GET);
-
- httpRequest.setTrustStore(trustStore);
- httpRequest.setCrlStore(crlStore);
-
- if(options!=null && options.length>0) {
- for (HttpOptions httpOptions : options) {
- httpOptions.fill(httpRequest);
- }
- }
-
- check(httpRequest);
-
- }
-
-
-
- // checkHTTPS_trustAllCerts (no options)
-
- public static void checkHTTPS_trustAllCerts(String path) throws UtilsException, HttpUtilsException{
- checkHTTPS_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- (HttpOptions[]) null);
- }
- public static void checkHTTPS_trustAllCerts(String path,int readTimeout,int connectTimeout) throws UtilsException, HttpUtilsException{
- checkHTTPS_trustAllCerts(path, readTimeout, connectTimeout, null, null,
- (HttpOptions[]) null);
- }
- public static void checkHTTPS_trustAllCerts(String path,String username,String password) throws UtilsException, HttpUtilsException{
- checkHTTPS_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- (HttpOptions[]) null);
- }
- public static void checkHTTPS_trustAllCerts(String path,int readTimeout,int connectTimeout,String username,String password) throws UtilsException,HttpUtilsException{
- checkHTTPS_trustAllCerts(path, readTimeout, connectTimeout, username, password,
- (HttpOptions[]) null);
- }
-
- // checkHTTPS_trustAllCerts (options)
-
- public static void checkHTTPS_trustAllCerts(String path,
- HttpOptions ... options) throws UtilsException, HttpUtilsException{
- checkHTTPS_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, null, null,
- options);
- }
- public static void checkHTTPS_trustAllCerts(String path,int readTimeout,int connectTimeout,
- HttpOptions ... options) throws UtilsException, HttpUtilsException{
- checkHTTPS_trustAllCerts(path, readTimeout, connectTimeout, null, null,
- options);
- }
- public static void checkHTTPS_trustAllCerts(String path,String username,String password,
- HttpOptions ... options) throws UtilsException, HttpUtilsException{
- checkHTTPS_trustAllCerts(path, HTTP_READ_CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT, username, password,
- options);
- }
- public static void checkHTTPS_trustAllCerts(String path,int readTimeout,int connectTimeout,String username,String password,
- HttpOptions ... options) throws UtilsException,HttpUtilsException{
- HttpRequest httpRequest = new HttpRequest();
- httpRequest.setUrl(path);
- httpRequest.setReadTimeout(readTimeout);
- httpRequest.setConnectTimeout(connectTimeout);
- httpRequest.setUsername(username);
- httpRequest.setPassword(password);
- httpRequest.setMethod(HttpRequestMethod.GET);
-
- httpRequest.setTrustAllCerts(true);
-
- if(options!=null && options.length>0) {
- for (HttpOptions httpOptions : options) {
- httpOptions.fill(httpRequest);
- }
- }
-
- check(httpRequest);
-
- }
-
- public static void check(HttpRequest httpRequest) throws UtilsException,HttpUtilsException{
-
- HttpResponse response = null;
- try{
- response = httpInvoke(httpRequest);
-
- }catch(Exception e){
- throw new UtilsException(e.getMessage(),e);
- }
-
- check(response);
-
- }
-
- public static void check(HttpResponse response) throws HttpUtilsException{
- if(response.getResultHTTPOperation()!=200){
- if(response.getContent()!=null){
- throw new HttpUtilsException(response.getResultHTTPOperation(), "Response Code ("+response.getResultHTTPOperation()+"): "+new String(response.getContent()));
- }
- else{
- throw new HttpUtilsException(response.getResultHTTPOperation(), "Response Code ("+response.getResultHTTPOperation()+")");
- }
- }
- }
-
-
-
-
-
-
- /* ********* VALIDATE URI ************ */
-
- public static void validateUri(String uri,boolean checkEsistenzaFile) throws UtilsException,java.net.MalformedURLException{
-
- if (uri.startsWith("http://")
- || uri.startsWith(TEST_FILE_ORIGIN)) {
- if(checkEsistenzaFile)
- HttpUtilities.requestHTTPFile(uri);
- else
- RegExpUtilities.validateUrl(uri);
- } else {
- File f = new File(uri);
- if(checkEsistenzaFile){
- if(f.exists()==false){
- throw new UtilsException("File non esistente");
- }
- else if(f.isDirectory()){
- throw new UtilsException("File e' una directory");
- }else if(f.canRead()==false){
- throw new UtilsException("File non accessibile");
- }
- }
- }
- }
-
-
- /* ********* DIGEST HEADER ************ */
-
- @Deprecated
- public static String getDigestHeaderValueByCommons(byte[] content, String algorithm) throws UtilsException{
- String digestValue = null;
- if(algorithm.equals(HttpConstants.DIGEST_ALGO_MD5)) {
- digestValue = DigestUtils.md5Hex(content);
- }
- else if(algorithm.equals(HttpConstants.DIGEST_ALGO_SHA_1) || algorithm.equals(HttpConstants.DIGEST_ALGO_SHA)) {
- digestValue = DigestUtils.sha1Hex(content);
- }
- else if(algorithm.equals(HttpConstants.DIGEST_ALGO_SHA_256)) {
- digestValue = DigestUtils.sha256Hex(content);
- }
- else if(algorithm.equals(HttpConstants.DIGEST_ALGO_SHA_384)) {
- digestValue = DigestUtils.sha384Hex(content);
- }
- else if(algorithm.equals(HttpConstants.DIGEST_ALGO_SHA_512)) {
- digestValue = DigestUtils.sha512Hex(content);
- }
- else {
- throw new UtilsException("Digest algorithm '"+algorithm+"' unsupported");
- }
- return algorithm+"="+digestValue;
- }
-
- public static String getDigestHeaderValue(byte[] content, String algorithm) throws UtilsException{
- // RFC 5843, il quale estende il precedente RFC 3230, vengono specificati sia gli algoritmi SHA 256 e 512 che la loro codifica, la quale deve essere base64.
- return getDigestHeaderValue(content, algorithm, DigestEncoding.BASE64);
- }
- public static String getDigestHeaderValue(byte[] content, String algorithm, DigestEncoding digestEncoding) throws UtilsException{
- boolean rfc3230 = true; // aggiunge prefisso algoritmo=
- return org.openspcoop2.utils.digest.DigestUtils.getDigestValue(content, algorithm, digestEncoding, rfc3230);
- }
- public static Map<DigestEncoding, String> getDigestHeaderValues(byte[] content, String algorithm, DigestEncoding ... digestEncoding) throws UtilsException{
- boolean rfc3230 = true; // aggiunge prefisso algoritmo=
- return org.openspcoop2.utils.digest.DigestUtils.getDigestValues(content, algorithm, rfc3230, digestEncoding);
- }
- }