2016-02-22 5 views
0

Мне нужно только разрешить список сайтов для встраивания нашего сайта.получить список исходных URL-адресов от HttpServletRequest

public boolean matches(HttpServletRequest request) { 
    String requestReferer = request.getHeader("Referer"); 

    for (String s : whiteList) { 
     if (requestReferer.toLowerCase().contains(s)) 
      return true; 
    } 
    return false; 
} 

Я получаю «Referer» из заголовка запроса, который дает полный URL происхождения: http://somesite.com/something/something

Приведенный выше код работает отлично. Однако есть ли способ получить имя хоста из объекта HttpServletRequest, а не использовать «Referer»? Я имею в виду способ получить «somesite.com» из объекта HttpServletRequest.

ответ

-1

Для получения информации о клиенте вы можете использовать ServletRequest.getRemoteAddr() и ServletRequest.getRemoteHost().

Javadoc из getRemoteHost говорит:

Возвращает полное имя клиента или последнего прокси-сервера, который послал запрос. Если двигатель не может или не хочет решить имя хоста (для повышения производительности), этот метод возвращает форму точечной строки . Для HTTP-сервлетов, как и значение значения переменной CGI REMOTE_HOST.

+0

OP хочет извлечь хост из реферера, а не вычислить собственный хост. – BalusC

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