2015-10-18 6 views
1

Создание webapp за обратным прокси-сервером/балансиром нагрузки, мне нужно получить правильный исходный URL-запрос запроса (предварительная перегрузка предварительной загрузки).Restlet Как правильно строить ссылки HATEAOS?

Я использовал getReference() (в ServerResource), чтобы добавить собственную ссылку в смысле HATEAOS. Однако в документе говорится, что getReference() может управляться маршрутизацией, и в настоящее время она не включает правильную схему (http, а не https - балансировка нагрузки завершает https).

Ниже перечислены конфигурации NGINX в отношении перенаправленных заголовков.

location /api { 
     proxy_pass http://test-service; 
     proxy_pass_header X-Host; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X_FORWARDED_PROTO $scheme; 
} 

Неверная конфигурация обратного прокси, или я должен использовать метод getOriginalReference(). Есть ли какая-то документация, в которой объясняется, как создается «исходная» ссылка, какие поля используются за обратным прокси.

ответ

1

Я думаю, что поддержка заголовка X-Forwarded-For должна быть явно включена в Restlet из-за возможных проблем безопасности.

Вот способ, чтобы включить эту функцию в качестве уровня соединителя сервера:

Component c = new Component(); 
Server server = c.getServers().add(Protocol.HTTP, 8182); 
server.getContext().getParameters().add("useForwardedForHeader", "true"); 
c.start(); 

Смотрите эту страницу для более подробной информации: http://restlet.com/technical-resources/restlet-framework/guide/2.3/core/base/connectors.

После этого, соответствующие подсказки доступны в объекте ClientInfo:

List<String> forwardedAddresses 
    = request.getClientInfo().getForwardedAddresses(); 

Смотрите эту страницу для отображения между заголовками и Restlet API: http://restlet.com/technical-resources/restlet-framework/guide/2.2/core/http-headers-mapping.

Надеюсь, это вам поможет Thierry

Смежные вопросы