Use um arquivo .p12 do classpath para GoogleCredential

Estou criando um aplicativo de linha de comando java compactado em um único arquivo JAR que usa parte da API do Google.

Preciso configurar um objeto GoogleCredential a partir de uma chave privada "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();

No momento, consegui fazê-lo funcionar, mas o arquivo "Credentials.p12" está localizado fora do arquivo JAR compactado.

Como faço para funcionar usando um arquivo p12 de dentro do JAR?

A partir dissodocumentação, a única outra alternativa que acho que posso usar é a variante do método que usa um objeto PrivateKey. Estou pensando em usar InputStream para obter o arquivo p12 do classpath:

InputStream is = this.getClass().getResourceAsStream("Credentials.p12");

Eu absolutamente não tenho idéia de como fazer isso.

Antes de responder, verifique se você tem experiência com a biblioteca do Google OAuth2. E por favor, não há hacks como copiar o recurso para um arquivo temporário: a versão singular do Credential.p12 deve permanecer dentro do JAR por um motivo.

questionAnswers(2)

yourAnswerToTheQuestion