Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring Security+Velocity, Velocity, Spring Security 
:(
    Опции темы
Andy_L20066
Дата 2.4.2010, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 10.3.2008

Репутация: нет
Всего: 1



привет,

вообщем использую Spring security. Ну и вот захотелось прикрутить Velocity... неочень знаком с этим дело... но есть проблема:

как можна в Velocity доступится до параметров сесии???? Решения я по ходу пока не нашел...
у меня есть пейджа которая предлагает пользователю залогинится 
Код

    <c:if test="${not empty param.login_error}">
      <font color="red">
        Your login attempt was not successful, try again.<br/><br/>
        Reason: <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/>.
      </font>
    </c:if>

    <form name="f" action="<c:url value='j_spring_security_check'/>" method="POST">
      <table>
        <tr><td><fmt:message key="Username"/></td><td><input type='text' name='j_username' value='<c:if test="${not empty param.login_error}"><c:out value="${SPRING_SECURITY_LAST_USERNAME}"/></c:if>'/></td></tr>
        <tr><td>Password:</td><td><input type='password' name='j_password'></td></tr>
        <tr><td><input type="checkbox" name="_spring_security_remember_me"></td><td>Don't ask for my password for two weeks</td></tr>

        <tr><td colspan='2'><input name="submit" type="submit"></td></tr>
        <tr><td colspan='2'><input name="reset" type="reset"></td></tr>
      </table>

    </form>


в пейдже имеется некий параметр param.login_error который берется из конфигурации спринга: 
Код

<form-login login-page="/"
                     default-target-url="/news"
                     authentication-failure-url="/?login_error=1"/>


Есть свой сервис который проверяет какие данные вводил юзер (юзернейм и пароль), если юзера с такими данными нет викидывает иксепшин, соответственно меня редиректит на ту же страницу где param.login_error=1 и соответсвенно появляется текст что мол Bad credentials.
если работаю з jsp - то все нормально, а как Velocity будет знать о этом параметре?

можно конечно сделать так: authentication-failure-url="/?login_error=1"/> сделать редирект на какой то контроллер где вытаскивать аттрибут из сесии и сетать его на страницу, ну что то типа такого получается: 
Код

 @RequestMapping(value = "/loginfailure", method = RequestMethod.GET)
    public ModelAndView get() {
        ModelAndView mav = new ModelAndView();
        mav.setViewName("login");
        ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
        AuthenticationException authenticationException = (AuthenticationException) WebUtils
                .getSessionAttribute(attr.getRequest(), AbstractAuthenticationProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY);
       
        if (authenticationException != null) {
            mav.addObject("securityException", authenticationException);
           }
        return mav;
    }


ну это чего то так сложно получается: кантроллер отдельный - только для того чтобы что-то сетнуть из сесии...
 smile 
PM MAIL ICQ   Вверх
polosatij
  Дата 8.4.2010, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8



Andy_L20066

кодовое слово Velocity Tool.

наследуешь класс от ContextRequest (по-мойму) и получаешь сессию через request.getSession(). это всё чудо. smile


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0894 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.