путь по которому идет авторизация:
"GET /sber911 (без куки) →
↔ 301 -> /sber911/
GET /sber911/ (без куки) →
↔ 302 Moved Temporarily
← Set-Cookie: PLATFORM_SESSION=... (новая сессионная кука)
← Location: https://auth-dmz-ift... (редирект на Keycloak)
GET на Keycloak (с сертификатом, с кукой) →
↔ 302 Found
← Set-Cookie: AUTH_SESSION_ID=...
← Set-Cookie: KEYCLOAK_IDENTITY=...
← Location: https://sber911-ift-iam.../redirect_uri?code=...
GET /openid-connect-auth/redirect_uri?code=... (с куками) →
↔ 302 -> /sber911/ (снова)
GET /sber911/ (с финальными куками PLATFORM_SESSION, PLATFORM_SESSION_2, ...) →
↔ 200 OK"
public void testWithSsl(RestService restService) {
System.setProperty("javax.net.debug", "ssl,handshake");
CookieFilter cookieFilter = new CookieFilter();
RestAssuredConfig sslConfig = SslConfiguration.getP12Config();
Response response = restService.restClient()
.get(spec -> spec
.filter(cookieFilter)
.config(sslConfig)
.log().all(),
AuthConfiguration.AUTH_URL)
.toResponse();
response.then().log().all();
}
public static RestAssuredConfig getP12Config() {
return RestAssuredConfig.config()
.sslConfig(new SSLConfig()
.keyStore(
AuthConfiguration.CERTIFICATE_PATH,
AuthConfiguration.CERTIFICATE_PASSWORD)
.keystoreType("PKCS12"))
.redirect(RedirectConfig.redirectConfig()
.followRedirects(true)
.allowCircularRedirects(true)
.maxRedirects(20));
}
public class CertificateLoader {
private CertificateLoader() {}
public static KeyStore load() {
try {
InputStream is = Files.newInputStream(
Paths.get(AuthConfiguration.CERTIFICATE_PATH));
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(is, AuthConfiguration.CERTIFICATE_PASSWORD.toCharArray());
return keyStore;
} catch (Exception e) {
throw new AuthException("Не могу загрузить сертификат, ошибка: ", e);
}
}
}
поправь, у нас сейчас проблема, что при переадресации не записывается кука и как следствие, при след 302 у нас ошибка, тк кука пустая