Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline vsevolod.kazakov  
#1 Оставлено : 20 августа 2024 г. 11:59:07(UTC)
vsevolod.kazakov

Статус: Новичок

Группы: Участники
Зарегистрирован: 20.08.2024(UTC)
Сообщений: 1
Российская Федерация
Откуда: Saint-Petersburg

Формируем запрос

Цитата:
String scope = "http://esia.gosuslugi.ru/ext_imp";
String timestamp = DateUtil.format(now(), "yyyy.MM.dd HH:mm:ss Z");
String state = UUID.randomUUID().toString();

byte[] signedData = signer.sign(scope + timestamp + clientId + state);

String params = "client_id=" + clientId + "&" +
"client_secret=" + urlSafeBase64.encode(signedData) + "&" +
"scope=" + urlEncodePath(scope) + "&" +
"response_type=token&" +
"grant_type=client_credentials&" +
"state=" + urlEncodePath(state) + "&" +
"redirect_uri=" + urlEncodePath("https://i.xxxx.ru/") + "&" +
"timestamp=" + urlEncodePath(timestamp) + "&" +
"token_type=Bearer";

HttpTextResponse response = (HttpTextResponse) httpClient.post(url, params, Map.of("Content-Type", "application/x-www-form-urlencoded"));


получаем AccessToken
Цитата:

AccessToken token = gson.fromJson(response.content(null), AccessToken.class);


проверяем токен сертификатом
Цитата:

DecodedJWT jwt = JWT.decode(token);
byte[] headerBytes = jwt.getHeader().getBytes(UTF_8);
byte[] payloadBytes = jwt.getPayload().getBytes(UTF_8);
byte[] signatureBytes = Base64.decodeBase64(jwt.getSignature());

Signature s = Signature.getInstance(algorithm, "BC");
s.initVerify(publicKey);
s.update(headerBytes);
s.update(JWT_PART_SEPARATOR);
s.update(payloadBytes);
return s.verify(signatureBytes);// return false


Раньше все работало, выпускали сертификат на физ лицо, сейчас выпускается сертификат на юрлицо.
Код работает уже 4-5лет.

Отредактировано пользователем 20 августа 2024 г. 13:11:56(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.