Исключить URL из requireSecure () - PullRequest
0 голосов
/ 31 августа 2018

У меня есть приложение, в котором я хочу принудительно установить HTTPS для всех запросов, кроме одного. Для этого одного URL мне все равно, если это HTTP / HTTPS.

В настоящее время у меня есть следующая конфигурация безопасности

http.requiresChannel()
        .antMatchers("/actuator/health").requiresInsecure()
        .antMatchers("/*").requiresSecure();

Проблема заключается в том, что для этого требуется доступ к конечной точке работоспособности приводов по HTTP, но мне все равно, какой протокол используется (я бы предпочел оба). Когда вы настраиваете авторизацию, у вас есть allowAll, который не заботится о том, аутентифицированы вы или нет, почему этот механизм защиты не похож на другой.

Кто-нибудь знает, как исключить URL из механизма безопасности канала.

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Я думаю, вы можете попробовать что-то вроде этого:

http.requiresChannel()
  .antMatchers("/actuator/health").requires(ChannelDecisionManagerImpl.ANY_CHANNEL)
    .anyRequest().requiresSecure();
0 голосов
/ 31 августа 2018

вы можете использовать регулярное выражение, которое соответствует всем URL-адресам, кроме того, которое вы хотите исключить, например:

http...
 .and()
   .requiresChannel()
   .regexMatchers("^((?!/actuator/health).)*$").requiresSecure();`

примечание: я не эксперт по регулярным выражениям (возможно, требуется улучшение)

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