2010-11-24 3 views
3

Я использую Spring framework, apache, tomcat , а страницу входа обрабатывается с весной security , и у меня есть проблема , что каждый первый запрос на страницу входа в систему генерирует новый сеанс для пользователя, я знаю, что это по умолчанию, когда вы обращаетесь к странице входа в систему, для вас создается новый сеанс, то что, если большая загрузка сделана на странице входа в систему, слишком много пользователей просто просматривают страницу входа без каких-либо действий, поэтому слишком много неиспользуемых сеансов создаются здесь. Что вы, ребята, думаете только о проблеме, я знаю, что это редко, но может случиться, как с этим бороться?Слишком много сеансов создается при доступе к странице входа?

ответ

2

не думаю это редкий. Одно возможное растворение может заключаться в том, чтобы установить минимальный тайм-аут сеанса. Например, 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» - хорошее ключевое слово для поиска.

+0

Что делать, если зарегистрированный пользователь уже имеет сеанс, и он простаивает в течение 5 минут, поэтому его сеанс также будет уничтожен? – 2010-11-24 13:05:58

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