Iam trying to get access token using JWT Grant authentication for the embedded signing (docusign e-signature) implemetation.
Provided RSA key pairs (Private&public) keys in .pem file and passing private key in byte[] as to request JWTUserToken. pem object is returning null content.Is this a jar version mismatch?
if any kindly suggest.
Code:
public void populateApiClientConfigurations() throws IOException, IllegalArgumentException, ApiException {
ApiClient apiClient = new ApiClient("https://demo.docusign.net");
String integratorKey = "0789a33f-ac9b-4298-b699-18608f8be4f3";
String UserId = "b945b788-6266-4ac0-b7b6-1aae495186a8";
List<String> scopes = new ArrayList<>();
scopes.add(OAuth.Scope_SIGNATURE);
String privateKeyFilePath="D:\\Demodocs\\privatekey.pem";
byte[] privateKey = loadKeyFile(privateKeyFilePath);
Long time = 3600L;
OAuthToken oauthToken = apiClient.requestJWTUserToken(integratorKey,UserId,scopes,privateKey,time);
System.out.println((oauthToken.getAccessToken()));
}
public static byte[] loadKeyFile(String filePath) {
File inFile = new File(filePath);
long fileLen = inFile.length();
Reader reader = null;
PemObject pemObject = null;
try {
reader = new FileReader(inFile);
char[] content = new char[(int) fileLen];
reader.read(content);
String str = new String(content);
StringReader stringreader = new StringReader(str);
PemReader pem = new PemReader(stringreader);
pemObject = pem.readPemObject();
} catch (Exception e) {
e.printStackTrace();
}
return pemObject.getContent();
}
Error:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "org.bouncycastle.util.io.pem.PemObject.getContent()" because "pemObject" is null
at Demo.CommonService.loadKeyFile(CommonService.java:165)
at Demo.CommonService.populateApiClientConfigurations(CommonService.java:129)
at Demo.CommonService.main(CommonService.java:56)