rbkmoney / applepay-provider

Apache License 2.0
2 stars 5 forks source link

Не находится AppleRootCA-G3.cer #1

Open aurokk opened 3 years ago

aurokk commented 3 years ago

Последний образ в докерхабе не запускается, с такой ошибкой:

class path resource [AppleRootCA-G3.cer] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/opt/applepay/applepay.jar!/BOOT-INF/classes!/AppleRootCA-G3.cer

Я зашел в образ, распаковал jar и там есть этот файл по этому пути:

d06e7365a5ad /opt/applepay # jar xf applepay.jar 
d06e7365a5ad /opt/applepay # cd BOOT-INF/classes/
AppleRootCA-G3.cer  application.yml     com/                git.properties      logback-spring.xml

Локально всё работает, если просто запускать проект.

Не сталкивались?

tolkonepiu commented 3 years ago

А где именно не находит? Он есть в ресурсах: https://github.com/rbkmoney/applepay-provider/blob/master/src/main/resources/AppleRootCA-G3.cer

aurokk commented 3 years ago

Ага, ну, именно при запуске jar в докере. Похоже вот эта проблема — https://stackoverflow.com/a/25873705 — ожидается файл, а не ресурс. Сейчас попробую фикс.

    @Bean
    public SignatureValidator signatureValidator(@Value("${cert.ca.path}") Resource resource, @Value("${apple.expiration_time}") Long expirationTime) throws IOException {
        return new SignatureValidator(Files.readAllBytes(resource.getFile().toPath()), expirationTime);
    }
    @Bean
    public SignatureValidator signatureValidator(@Value("${cert.ca.path}") Resource resource, @Value("${apple.expiration_time}") Long expirationTime) throws IOException {
        return new SignatureValidator(resource.getInputStream().readAllBytes(), expirationTime);
    }
aurokk commented 3 years ago

Сделал пр, и ещё один чтоб mvn нормально собирал проект

tolkonepiu commented 3 years ago

У этой репы есть сейчас проблемы с билдом, ее перезалили. Перенесем фиксы позднее.

aurokk commented 3 years ago

@tolkonepiu чтоб два ишью не создавать, с гуглпей тоже самое