Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
ab64db71a8
commit
4803a6d864
|
@ -0,0 +1,128 @@
|
||||||
|
/**
|
||||||
|
* A HTTP plugin for Cordova / Phonegap
|
||||||
|
*/
|
||||||
|
package com.synconset;
|
||||||
|
|
||||||
|
import org.apache.cordova.CallbackContext;
|
||||||
|
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLConnection;
|
||||||
|
|
||||||
|
import javax.net.ssl.HttpsURLConnection;
|
||||||
|
import javax.net.ssl.SSLContext;
|
||||||
|
import javax.net.ssl.HostnameVerifier;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.github.kevinsawicki.http.HttpRequest;
|
||||||
|
|
||||||
|
public abstract class CordovaHttp {
|
||||||
|
protected static final String TAG = "CordovaHTTP";
|
||||||
|
protected static final String CHARSET = "UTF-8";
|
||||||
|
|
||||||
|
private static AtomicBoolean sslPinning = new AtomicBoolean(false);
|
||||||
|
private static AtomicBoolean acceptAllCerts = new AtomicBoolean(false);
|
||||||
|
private static AtomicBoolean validateDomainName = new AtomicBoolean(true);
|
||||||
|
|
||||||
|
private String urlString;
|
||||||
|
private Map<?, ?> params;
|
||||||
|
private Map<String, String> headers;
|
||||||
|
private CallbackContext callbackContext;
|
||||||
|
|
||||||
|
public CordovaHttp(String urlString, Map<?, ?> params, Map<String, String> headers, CallbackContext callbackContext) {
|
||||||
|
this.urlString = urlString;
|
||||||
|
this.params = params;
|
||||||
|
this.headers = headers;
|
||||||
|
this.callbackContext = callbackContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void enableSSLPinning(boolean enable) {
|
||||||
|
sslPinning.set(enable);
|
||||||
|
if (enable) {
|
||||||
|
acceptAllCerts.set(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void acceptAllCerts(boolean accept) {
|
||||||
|
acceptAllCerts.set(accept);
|
||||||
|
if (accept) {
|
||||||
|
sslPinning.set(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void validateDomainName(boolean accept) {
|
||||||
|
validateDomainName.set(accept);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String getUrlString() {
|
||||||
|
return this.urlString;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Map<?, ?> getParams() {
|
||||||
|
return this.params;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Map<String, String> getHeaders() {
|
||||||
|
return this.headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected CallbackContext getCallbackContext() {
|
||||||
|
return this.callbackContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected HttpRequest setupSecurity(HttpRequest request) {
|
||||||
|
if (acceptAllCerts.get()) {
|
||||||
|
request.trustAllCerts();
|
||||||
|
}
|
||||||
|
if (!validateDomainName.get()) {
|
||||||
|
request.trustAllHosts();
|
||||||
|
}
|
||||||
|
if (sslPinning.get()) {
|
||||||
|
request.pinToCerts();
|
||||||
|
}
|
||||||
|
return request;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void respondWithError(int status, String msg) {
|
||||||
|
try {
|
||||||
|
JSONObject response = new JSONObject();
|
||||||
|
response.put("status", status);
|
||||||
|
response.put("error", msg);
|
||||||
|
this.callbackContext.error(response);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
this.callbackContext.error(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void respondWithError(String msg) {
|
||||||
|
this.respondWithError(500, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void addResponseHeaders(HttpRequest request, JSONObject response) throws JSONException {
|
||||||
|
Map<String, List<String>> headers = request.headers();
|
||||||
|
Map<String, String> parsed_headers = new HashMap<String, String>();
|
||||||
|
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
|
||||||
|
String key = entry.getKey();
|
||||||
|
List<String> value = entry.getValue();
|
||||||
|
if ((key != null) && (!value.isEmpty())) {
|
||||||
|
parsed_headers.put(key, value.get(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
response.put("headers", new JSONObject(parsed_headers));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user