Wszystko mam aktualnie w jednym pliku bo dopiero testuję czy to zadziała
public class Program {
public static void main(String[] args) throws CertificateException, NoSuchAlgorithmException, KeyStoreException, IOException, UnrecoverableKeyException, KeyManagementException {
Payload payloadValues = new Payload();
Map<String, Object> claims = new HashMap<>();
claims.put("iss", payloadValues.iss);
claims.put("sub", payloadValues.sub);
claims.put("aud", payloadValues.aud);
claims.put("jti",payloadValues.jti);
claims.put("exp", ZonedDateTime.now().plusMinutes(5).toEpochSecond());
claims.put("user_id", payloadValues.user_id);
claims.put("user_role", payloadValues.user_role);
Map<String, Object> headers = new HashMap<>();
headers.put("typ", "JWT");
String file_wss = "C:\\Users\\Mintaa\\Desktop\\Program\\Certs\\wss.p12";
InputStream input = new FileInputStream(file_wss);
char[] haslodoCertyfikatu = "password".toCharArray();
String aliasCertyfikatu = "uwierzytelnienie danych";
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(input,haslodoCertyfikatu);
Key privateKey = keyStore.getKey(aliasCertyfikatu, haslodoCertyfikatu);
String token = Jwts.builder()
.signWith(privateKey,SignatureAlgorithm.RS256)
.setHeader(headers)
.setClaims(claims)
.compact();
System.out.println(token);
String pass = "password";
KeyStore p12 = KeyStore.getInstance("pkcs12");
p12.load(new FileInputStream("C:\\Users\\Mintaa\\Desktop\\Program\\Certs\\tls.p12"), "password".toCharArray());
System.setProperty("javax.net.ssl.trustStore", "p12");
System.setProperty("javax.net.ssl.trustStorePassword", "password");
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("Content-Type","application/x-www-form-urlencoded")
.addFormDataPart("client_assertion_type","urn:ietf:params:oauth:client-assertion-type:jwt-bearer")
.addFormDataPart("grant_type", "client_credentials")
.addFormDataPart("client_assertion", token)
.addFormDataPart("scope", url)
.build();
Request request = new Request.Builder()
.url("https://xxxxxx")
.method("POST", body)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
Response response = client.newCall(request).execute();
System.out.println(response);
System.out.println(response.body());
}
}