|
|
|
@ -0,0 +1,66 @@
|
|
|
|
|
# Обертки - хелперы
|
|
|
|
|
Данный набор классов поможет быстро накатать ваш код на Java,
|
|
|
|
|
но это больше готовилось для одноразовых скриптов в домашней эксплуатации.
|
|
|
|
|
|
|
|
|
|
Автор: Павел Беляев
|
|
|
|
|
|
|
|
|
|
## RestHelper
|
|
|
|
|
Данный класс работает на основе ApacheHttpClient и позволяет прокидывать запросы с авторизацией по ключу.
|
|
|
|
|
Поддерживается как односторонняя авторизация (только клиентский ключ),
|
|
|
|
|
так и двусторонняя (проверяем еще и сервер через трастовые хранилища).
|
|
|
|
|
|
|
|
|
|
Хранилища сертификатов поддерживаются двух типов - JKS и PKCS12.
|
|
|
|
|
|
|
|
|
|
### Пример использования RestHelper
|
|
|
|
|
```java
|
|
|
|
|
import org.apache.http.HttpResponse;
|
|
|
|
|
import org.pavlik.helpers.RestHelper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
|
|
|
|
public class Main {
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
RestHelper Rest = new RestHelper(
|
|
|
|
|
"client-keystore3.jks", //путь до клиентского хранилища
|
|
|
|
|
"JKS", //тип клиентского хранилища
|
|
|
|
|
"123321", //пароль к клиентскому хранилищу
|
|
|
|
|
"2", //alias клиентского сертификата
|
|
|
|
|
"truststore.jks", //путь до трастового хранилища
|
|
|
|
|
"JKS", //его тип
|
|
|
|
|
"123321" //пароль
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//адрес
|
|
|
|
|
String queryUrl = "https://192.168.200.10/index.php?kokoko=1";
|
|
|
|
|
//тело запроса
|
|
|
|
|
String queryBody = "{\"k\":\"val\"}";
|
|
|
|
|
//заголовки запроса
|
|
|
|
|
HashMap<String,String> queryHeaders = new HashMap<>();
|
|
|
|
|
queryHeaders.put("CONTENT-TYPE","text/plain2; charset=UTF-8");
|
|
|
|
|
|
|
|
|
|
//выполнение запроса и получение ответа
|
|
|
|
|
HttpResponse resp = Rest.queryPostRaw(queryUrl,queryBody,queryHeaders);
|
|
|
|
|
String respBody = Rest.getRespBody(resp);
|
|
|
|
|
System.out.println(respBody);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Если нужна только односторонняя аутентифификация, то весь блок с трастовыми можно упустить
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
RestHelper Rest = new RestHelper(
|
|
|
|
|
"client-keystore3.jks", //путь до клиентского хранилища
|
|
|
|
|
"JKS", //тип клиентского хранилища
|
|
|
|
|
"123321", //пароль к клиентскому хранилищу
|
|
|
|
|
"2", //alias клиентского сертификата
|
|
|
|
|
null //путь до трастового хранилища
|
|
|
|
|
null //его тип
|
|
|
|
|
null //пароль
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
***to be continue***
|