Servlet Секретный вопрос о j_security_check, j_username и j_password - PullRequest
0 голосов
/ 19 марта 2010

Я использовал jdbcRealm в своем веб-приложении, и он работает нормально. Я определил все ограничения также в моем web.xml. Как и все страницы шаблона URL / Admin / * должен быть доступен только администратором. У меня есть форма входа с использованием стандартных j_security_check, j_username и j_password.

Теперь, когда я набираю Admin / home.jsf, он правильно перенаправляет меня на login.jsf, а когда я набираю пароль, я перенаправляюсь на home.jsf. Это работает хорошо, но проблема приходит, я сразу иду в login.jsf, а затем введите пароль и имя пользователя. На этот раз он снова перенаправляет меня в login.jsf. Есть ли способ, с помощью которого я могу указать, какую страницу перейти при успешном входе в систему? Мне нужно указать разные страницы для разных ролей. Для администратора это /Admin/home.jsf для обычных пользователей, это /General/home.jsf, потому что форма входа в систему распределяется между различными типами пользователей. Где я могу указать все эти вещи?

Во-вторых, я хочу иметь флажок запомнить меня в конце формы входа в систему. Как мне это сделать? По умолчанию он передается сервлету j_security_check, и я не могу контролировать его выполнение. Пожалуйста помоги. Это не так сложно, но похоже, что я что-то упустил.

1 Ответ

0 голосов
/ 22 марта 2010

Я нашел ответ на свой вопрос.Это для любого новичка, который заглянет в эту ветку в будущем.Хорошо, решение, которое я нашел после долгих размышлений, состоит в том, что я делаю одну папку и одну страницу jsp, например, flag.jsp.Затем я предоставляю доступ ко всем ролям.

Теперь вы можете задаться вопросом, что хорошего это принесет? :) Что ж, просто следуйте этому, и все может быть сделано.: p

Далее в вашем welcome-файле в web.xml укажите URL этого файла.Таким образом, когда приложение запускается, оно переходит на этот URL-адрес, и контейнер обнаруживает, что я не прошел проверку подлинности, поэтому перенаправляю меня на страницу входа.Вот и все.Теперь заключительная часть - вы можете написать простые сценарии в нашем файле общих ролей jsp и перенаправить на главную страницу в зависимости от роли.Например.если httpservletrequest # isUserInRole ("Admin"), затем перенаправить на "/admin/home.jsf" и т. д.

Что ж, это не так эффективно, но важно то, что это работает!:).Эта идея случайно натолкнулась на меня сегодня.Полагаю, теперь я могу легко отдохнуть и использовать безопасность, управляемую контейнером.Жду ваших комментариев.

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