You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.2 KiB

Обертки - хелперы

Данный набор классов поможет быстро накатать ваш код на Java, но это больше готовилось для одноразовых скриптов в домашней эксплуатации.

Автор: Павел Беляев

RestHelper

Данный класс работает на основе ApacheHttpClient и позволяет прокидывать запросы с авторизацией по ключу. Поддерживается как односторонняя авторизация (только клиентский ключ), так и двусторонняя (проверяем еще и сервер через трастовые хранилища).

Хранилища сертификатов поддерживаются двух типов - JKS и PKCS12.

Пример использования RestHelper

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);
    }
}

Если нужна только односторонняя аутентифификация, то весь блок с трастовыми можно упустить

RestHelper Rest = new RestHelper(
                "client-keystore3.jks", //путь до клиентского хранилища
                "JKS", //тип клиентского хранилища
                "123321", //пароль к клиентскому хранилищу
                "2" //alias клиентского сертификата
        );

Если в качестве алиаса в клиентском сертификате передать null, то будет выбран первый попавшийся.

Вариант p12

RestHelper Rest = new RestHelper(
                "client1.p12",
                "PKCS12",
                "123321",
                null
                );

to be continue