Где разместить файл.p12 для плагина Stash?

Поэтому я пытаюсь написать плагин для получения сообщений в Stash, который в конечном итоге записывает некоторую соответствующую информацию в электронную таблицу Google. Для этого мне нужно извлечь закрытый ключ для аутентификации Oauth2 из файла.p12. Я сделал несколько тестовых проектов, которые были просто простыми приложениями командной строки Java, и я просто вынул файл.p12 в корне и вызвал его оттуда. Я сделал еще один, где я бы назвал его из папки ресурсов, и это тоже хорошо работало.

Я перенес этот код, установил все свои зависимости и запустил его. Я наивно уронил файл.p12 в корень и, очевидно, получил исключение не найденный файл. Посмотрел целевой каталог, увидел, что он никогда не переносил это, перенастроил и поместил его в папку ресурсов, чтобы посмотреть, перенесется ли это. Другой файл не найден исключением и все еще не находится в целевом каталоге. Я попытался поместить это в нескольких других местах просто, чтобы видеть, будет ли это перенесено. Пока ничего не получалось.

Что я здесь не так делаю?

Я думаю, я мог бы поместить файл прямо в мой экземпляр Stash и вызвать его оттуда, но я бы предпочел, чтобы он содержался прямо в плагине.

Я много искал, но не нашел ничего действительно актуального. У кого-нибудь есть предложения?

1 ответ

Решение

Если кто-то еще видит это и задается вопросом, как я решил это... Разработчик Atlassian указал мне, что моя главная проблема заключается в том, что я просто помещаю файл.p12 в каталог корневых ресурсов. Как только я положил его в свою собственную папку, он заработал как шарм. Мой последний код для того, чтобы заставить все это работать (с помощью других вопросов о переполнении стека)

String sheetURL = "XXXXXX@XXXXXX-XXXX.iam.gserviceaccount.com";
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
String[] SCOPESArray = {"https://spreadsheets.google.com/feeds", "https://spreadsheets.google.com/feeds/spreadsheets/private/full", "https://docs.google.com/feeds"};

final List SCOPES = Arrays.asList(SCOPESArray);
GoogleCredential credential = null;
InputStream stream = null;
File tempFile = null;

try {
    stream = this.getClass().getClassLoader().getResourceAsStream("authentication/key.p12");
    tempFile = File.createTempFile("temp", "temp");
    IOUtils.copy(stream, new FileOutputStream(tempFile));
}
catch (IOException e) {
    print(e.toString());
}
finally {
    if (stream != null) {
        IOUtils.closeQuietly(stream);
    }
}

credential = new GoogleCredential.Builder()
    .setTransport(httpTransport)
    .setJsonFactory(jsonFactory)
    .setServiceAccountId(sheetURL)
    .setServiceAccountScopes(SCOPES)
    .setServiceAccountPrivateKeyFromP12File(tempFile) 
    .build();
Другие вопросы по тегам