Zuul прокси простая аутентификация

У меня есть простое приложение для весенней загрузки, которое проксирует некоторый api с прокси-сервером zuul

@EnableZuulProxy
@SpringBootApplication
public class DemoClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoClientApplication.class, args);
    }
}

application.yml

server:
  port: 8080
zuul:
  routes:
    test:
      path: /api/**
      url: http://localhost:8081/api/

localhost: 8081 имеет базовую аутентификацию, что-то вроде

localhost:8081/j_spring_security_check?j_username=user&j_password=pass

которые возвращают мне файлы cookie с JSESSIONID, и, установив этот JSESSIONID в заголовок, я могу получить ресурс. Я не могу изменить localhost: 8081, потому что это не моя служба. Как я могу получить этот JSESSIONID и настроить zuul? Могу ли я сделать это только с помощью yml?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
323
1

Ответы 1

Я думаю, вы спрашиваете о чувствительных заголовках в параметрах конфигурации. По умолчанию заголовки Cookie, Set-Cookie, Авторизация заблокированы конфигурацией sensitiveHeaders: Cookie,Set-Cookie,Authorization. Его можно переопределить, но вы должны быть уверены, что не допускаете утечки конфиденциальной информации в куки-файлы вниз по потоку:

 zuul:
  routes:
    users:
      path: /myusers/**
      sensitiveHeaders:
      url: https://downstream

Но сначала вам нужно прочитать, почему они отключены в документации Spring Cloud:

You can share headers between services in the same system, but you probably do not want sensitive headers leaking downstream into external servers. You can specify a list of ignored headers as part of the route configuration. Cookies play a special role, because they have well defined semantics in browsers, and they are always to be treated as sensitive. If the consumer of your proxy is a browser, then cookies for downstream services also cause problems for the user, because they all get jumbled up together (all downstream services look like they come from the same place).

http://cloud.spring.io/spring-cloud-netflix/single/spring-cloud-netflix.html#_cookies_and_sensitive_headers

Другие вопросы по теме