Слишком много сеансов создается при доступе к странице входа? - PullRequest
3 голосов
/ 24 ноября 2010

Я использую Spring Framework, Apache, Tomcat и страница входа обрабатывается с Spring Security, и у меня есть проблема, что каждый первый запрос на страницу входа генерирует новый сеанс для пользователя, я знаю, что это поведение по умолчанию, когда вы открываете страницу входа в систему, для вас создается новый сеанс, а что, если большая нагрузка на страницу входа в систему слишком велика, слишком много пользователей просто просматривают страницу входа, ничего не делая, поэтому создается слишком много неиспользуемых сеансовВот.Что вы, ребята, думаете только о проблеме, я знаю, что это редко, но это может произойти, как справиться с этим?

1 Ответ

2 голосов
/ 24 ноября 2010

Я не думаю, что это редко.Одним из возможных решений может быть установка минимального времени ожидания сеанса.Например 5 минут.Кроме того, вы можете написать фильтр для увеличения времени ожидания сеанса, если сеанс уже существует для пользователя.Таким образом, у обычного пользователя время сеанса составляет 30 минут, а у пользователей, посещающих только одну сторону, время ожидания составляет 5 минут.

Вот фильтр, который дозирует хитрость:

public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {

    HttpServletRequest httpRequest = (HttpServletRequest)request;

    // The false is important, otherwise a new session will be created.
    HttpSession session = httpRequest.getSession(false);

    if (session == null) {
        chain.doFilter(request, response);
        return;
    }

    session.setMaxInactiveInterval(30 * 60);
    chain.doFilter(request, response);
}

Еще один хорошийСовет должен фильтровать сканеры, как бот Google."Bot Detection" - это хорошее ключевое слово для поиска.

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