Я делаю приложение командной строки java, упакованное в один JAR-файл, который использует некоторые API Google.Использование файла .p12 из пути к классам для GoogleCredential
Мне нужно настроить объект GoogleCredential из закрытого ключа «Credentials.p12».
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId("[email protected]")
.setServiceAccountScopes(Arrays.asList(DirectoryScopes.ADMIN_DIRECTORY_GROUP, DirectoryScopes.ADMIN_DIRECTORY_USER, DirectoryScopes.ADMIN_DIRECTORY_ORGUNIT))
.setServiceAccountUser(emailAccount)
//THE CODE BELOW IS IMPORTANT: I need to change this
.setServiceAccountPrivateKeyFromP12File(new File("Credentials.p12"))
.build();
directory = new Directory.Builder(httpTransport, jsonFactory, credential)
.setApplicationName("My Cmd App")
.build();
Прямо сейчас я был в состоянии сделать его работу, но файл «Credentials.p12» находится за пределами упакованного файла JAR.
Как заставить его работать с помощью файла p12 изнутри JAR?
Из этого documentation единственной альтернативой, которую я могу использовать, является вариант метода, который использует объект PrivateKey. Я имею в виду использования InputStream, чтобы получить файл p12 из пути к классам:
InputStream is = this.getClass().getResourceAsStream("Credentials.p12");
Я абсолютно не имею ни малейшего представления о том, как сделать это.
Прежде чем вы ответите, убедитесь, что у вас есть опыт использования библиотеки Google OAuth2. И, пожалуйста, никаких хаков, подобных копированию ресурса во временный файл: единственная версия Credential.p12 должна оставаться внутри JAR по какой-то причине.
Что вы думаете хорошо звучит, вы просто должны заменить FileInputStream здесь http://grepcode.com/file/repo1.maven.org/maven2/com.google.oauth-client/google- oauth-client/1.10.0-beta/com/google/api/client/auth/security/PrivateKeys.java # 82 – zapl
еще одна проблема, которая у меня есть: я абсолютно не знаю, что такое псевдоним и пароль для файла p12, который google предоставляет ... плохо попытаться проверить документы позже. Обновление – CobraEnergyDrink
: ответил на мой собственный вопрос, сделал некоторые копания в структуре файла p12 и использовал предложение @zapl. – CobraEnergyDrink