Stati c значение application.properties работает, а динамическое c - нет - PullRequest
1 голос
/ 06 августа 2020

Я использую application.properties и мою среду linux для достижения 12-факторного качества. Я пытаюсь получить ключ api для работы с настраиваемым значением application.properties, которое я определяю, но он не работает.

# application.properties

plenti.iaphub.webhooks.key=ACTUAL_VALUE_OF_API_KEY # This one works
# application.properties

plenti.iaphub.webhooks.key=${ENV_VARIABLE_HOLDING_API_KEY} # This one doesn't work

Вот как я пытаюсь получить доступ значение

@Controller
@RequestMapping(path = "/iap")
public class IAPHUBController {

    @Autowired
    Environment env;

    @PostMapping(path = "/webhook")
    public ResponseEntity<String> webhook(@RequestHeader("X-Auth-Token") String iapAuthHeader) {
        String iaphubKey = env.getProperty("plenti.iaphub.webhooks.key");
        if (!iapAuthHeader.equals(iaphubKey)) {
            // this is an inauthentic request
            return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
        }

        return ResponseEntity.ok("Hello IAPHUB");
    }
}

вот ошибка, которую я получаю, когда пытаюсь получить доступ к версии переменной ENV

java.lang.IllegalArgumentException: Could not resolve placeholder

1 Ответ

0 голосов
/ 06 августа 2020

Просто установите переменную окружения с именем PLENTI_IAPHUB_WEBHOOKS_KEY. Это переопределит значение, установленное в файле application.properties . Вы можете сделать это для любого свойства: преобразовать его в верхний регистр и заменить точки символами подчеркивания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...