0
자바의 개인 키로 JWT를 만들려고합니다. 개인 키가 파일에 있습니다.Poynt 자바의 개인 키에서 JWT 만들기
내 방법입니다.
java.security.InvalidKeyException :
protected String prepareJWT() throws NoSuchAlgorithmException, InvalidKeySpecException, JOSEException { String poyntPrivateKey = this.getPoyntPrivateKey(); byte[] privateBytes = poyntPrivateKey.getBytes(); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateBytes); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey privateKey = keyFactory.generatePrivate(keySpec); JWSSigner signer = new RSASSASigner((RSAPrivateKey) privateKey); ... }
나는 메시지와 함께
keyFactory.generatePrivate(keySpec);
에서 예외가 잘못된 키 형식을 여기
와 여기 getPoyntPrivateKey()
protected String getPoyntPrivateKey() {
File file = new File("resources/poynt_api_private_key.txt");
StringBuilder privateKeyBuilder = new StringBuilder();
String privateKey = privateKeyBuilder.toString();
try {
FileReader fr = new FileReader(file);
Scanner scanner = new Scanner(fr);
while(scanner.hasNextLine()) {
privateKeyBuilder.append(scanner.nextLine() + "\r");
}
scanner.close();
privateKey = privateKeyBuilder.toString();
} catch (Exception e) {
privateKey = "Error";
} finally {
}
return privateKey;
}
감사합니다. 나는 openssl을 사용하여 수동으로 키를 변환했다. –