2013-05-08 5 views
0

У меня есть контроллер входа, который проверяет пароль пользователя и пароль и устанавливает userId в сеансе, теперь по наследству я могу всегда проверять ключ userId в сеансе. Если настоящий пользователь зарегистрирован если нет, то usr не аутентифицируется для конкретного запроса.Как управлять вошедшим в сеанс весной mvc

Теперь проблема с этим соглашением заключается в том, что я каждый раз должен явно проверять поле userId в сеансе на каком-то контроллере (фактически в каждой функции контроллера) с ограниченным входом и в некоторых случаях мне не нужно проверять .. поскольку страницы предназначены для открытого доступа.

Каковы лучшие способы обработки ситуации с loggedin/loggged out? Есть ли какой-то весенний характер?

+0

Использование сервлета 'Фильтр' или пружина 'Перехватчик'. Вам нужно будет указать, когда вы должны войти в систему, а когда нет. –

+0

подумал об этом ... но как узнать, какие страницы находятся в общедоступном и которые находятся на приватном уровне ... на этом уровне у меня есть hundreads url-запроса для обработки ... и их нет префикса для bifercate между разными типами URL-адресов –

+1

Вы должны определить какой-то способ. Если вы нажали на время, возможно, скомпилируйте список uri (или шаблонов uri), которые должны быть сопоставлены с вашим фильтром/перехватчиком. Если один из них согласован для запроса, проверьте вход в систему (переадресовать, если он не вошел в систему), иначе пропустите его. Если у вас много времени и вы хотите узнать что-то новое, Spring Security или Shiro будут более эффективными в долгосрочной перспективе. –

ответ

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