Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaEE - аутентификация / 25 сообщений из 32, страница 1 из 2
22.02.2011, 15:11
    #37130648
Baur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Всем привет

NetBeans IDE 6.9
JavaEE6
Java Development Kit (JDK) version 6
GlassFish server - Open Source Edition 3.0.1
View: JSP
Controller: Servlet
Model: Session Bean (EJB)
Entity Classes: JPA


выбрал FORM метод для аутентификации

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    <login-config>
        <auth-method>FORM</auth-method>
        <realm-name>file</realm-name>
        <form-login-config>
            <form-login-page>/login.jsp</form-login-page>
            <form-error-page>/error.jsp</form-error-page>
        </form-login-config>
    </login-config>

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

а то кроме processRequest ничего в голову не приходит

Код: plaintext
1.
2.
3.
 protected   void  processRequest(HttpServletRequest request, HttpServletResponse response)
             throws  ServletException, IOException {
        //get User Data
    } 
...
Рейтинг: 0 / 0
22.02.2011, 15:18
    #37130677
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Я делал фильтр, который проверял:
- аутентифицирован ли пользователь
- если да -- есть ли дополнительные данные.
...
Рейтинг: 0 / 0
22.02.2011, 15:27
    #37130700
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Зависит от того как у вас всё реализовано. Если всё по J2EE, то форму вы отправляете на j_security_check. Соответственно можно реализоваьт Servlet Filter, который будет отлавливать именно запросы к j_security_check и если на выходе из FilterChain нет статуса ошибки, то логин был успешным.

Если сразу делать через Spring Security, то там добавить интерцептор должно быть ещё проще.
...
Рейтинг: 0 / 0
22.02.2011, 15:33
    #37130717
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Когда я боролся по этой теме, обнаружил, что фильтр на j_security_check будет работать не на всех серверах. В частности на Томкате он не работает.
...
Рейтинг: 0 / 0
22.02.2011, 15:37
    #37130722
Baur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
BlazkowiczЗависит от того как у вас всё реализовано. Если всё по J2EE, то форму вы отправляете на j_security_check. Соответственно можно реализоваьт Servlet Filter, который будет отлавливать именно запросы к j_security_check и если на выходе из FilterChain нет статуса ошибки, то логин был успешным.

Если сразу делать через Spring Security, то там добавить интерцептор должно быть ещё проще.


вот так???

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
@WebFilter(servletNames = {"Controller"})
 public   class  SessionTimeoutFilter  implements  Filter {

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

        HttpServletRequest req = (HttpServletRequest) request;
        HttpSession session = req.getSession(false);
        String userPath = req.getServletPath();
         if  (userPath.equals("/if j_security_check"))
        {
             //get user data
        }

        chain.doFilter(request, response);
    }

    @Override
     public   void  init(FilterConfig filterConfig)  throws  ServletException {}

    @Override
     public   void  destroy() {}

}

авторна выходе из FilterChain нет статуса ошибки, то логин был успешным
как это проверить?
...
Рейтинг: 0 / 0
22.02.2011, 15:43
    #37130742
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Alexander A. SakКогда я боролся по этой теме, обнаружил, что фильтр на j_security_check будет работать не на всех серверах. В частности на Томкате он не работает.
Можно завести свой URL с форвардом на j_security_check, главное чтобы форвард работал.
...
Рейтинг: 0 / 0
22.02.2011, 15:51
    #37130767
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Baurвот так???
[/src]Нет. Вы же не свой сервлет перехватываете. Надо через urlPatterns.

авторна выходе из FilterChain нет статуса ошибки, то логин был успешным
как это проверить?
HTTP Response Status Code, например?
...
Рейтинг: 0 / 0
22.02.2011, 16:04
    #37130806
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Альтернативный вариант это непосредственно переопределить логин модуль сервера и добавить перехвадчик. Но это уже привязка к вендору.
...
Рейтинг: 0 / 0
22.02.2011, 16:08
    #37130812
Baur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
@WebFilter(filterName="NewFilter", urlPatterns={"/if j_security_check"})
 public   class  NewFilter  implements  Filter {
     private   static   final   boolean  debug = true;
    // The filter configuration object we are associated with.  If
    // this value is null, this filter instance is not currently
    // configured. 
     private  FilterConfig filterConfig =  null ;

  
     public   void  doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain)
	 throws  IOException, ServletException {
        
        chain.doFilter(request, response);
         int  status = response.getStatus();
         if  {status =  200 ){
               //get user data
        } 
        
    }

    @Override
     public   void  init(FilterConfig filterConfig)  throws  ServletException {
         throw   new  UnsupportedOperationException("Not supported yet.");
    }

    @Override
     public   void  destroy() {
         throw   new  UnsupportedOperationException("Not supported yet.");
    }

}

покажите пожалуйста, как это лучше реализовать?
...
Рейтинг: 0 / 0
22.02.2011, 16:18
    #37130831
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
А что такое "/if " ?
...
Рейтинг: 0 / 0
22.02.2011, 16:19
    #37130834
Baur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
BlazkowiczА что такое "/if " ?

опечатка )))
...
Рейтинг: 0 / 0
22.02.2011, 16:31
    #37130868
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Baurтак?
Да, где-то так. Осталось проверить.
Baurпокажите пожалуйста, как это лучше реализовать?
Отказаться от тотального J2EE в пользу Spring based решений?
...
Рейтинг: 0 / 0
22.02.2011, 17:16
    #37131016
Baur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
авторОтказаться от тотального J2EE в пользу Spring based решений?
Spring - что это? фреймворк, аналог JSF ?

при этом придется полностью переписать приложение?
...
Рейтинг: 0 / 0
22.02.2011, 17:22
    #37131040
eros2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Baur Spring - что это? фреймворк, аналог JSF ? Фреймворк, замена Java EE.))
...
Рейтинг: 0 / 0
22.02.2011, 17:41
    #37131081
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
"eros2" <nospam@sql.ru>;> Фреймворк, замена Java EE.))


спринг не заменит j2ee. максимум - дополнение

Скажи Microsoft'у "Прощай"!

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
22.02.2011, 17:43
    #37131088
eros2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Deadyспринг не заменит j2ee. максимум - дополнение Уже заменяет, у них и сервер уже свой.
...
Рейтинг: 0 / 0
22.02.2011, 17:47
    #37131096
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Deadyспринг не заменит j2ee. максимум - дополнение

Зависит от того что именно от J2EE мы хотим. Только web делается по старинке на сервлетах. Всё остальное легко разруливается через opensource решения объединенные с помощью Spring.
...
Рейтинг: 0 / 0
22.02.2011, 17:56
    #37131117
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
"Blazkowicz" <nospam@sql.ru>;> Автор: Blazkowicz
> Deady
> спринг не заменит j2ee. максимум - дополнение
>
>
> Зависит от того что именно от J2EE мы хотим. Только web делается по
> старинке на сервлетах. Всё остальное легко разруливается через
> opensource решения объединенные с помощью Spring. Тема Ответить
> Сообщение
>



а пул stateless с прозрачной кластеризацией?

Скажи Microsoft'у "Прощай"!

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
22.02.2011, 18:03
    #37131131
pilot911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Deady,

что-то непонятно, есть EE серверы - что это значит, тогда, если авторизация зависит от вендора? вроде, эти сервера проходят тестирование в сан, чтобы называться EE-соответствующими
...
Рейтинг: 0 / 0
22.02.2011, 18:05
    #37131137
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Deadyа пул stateless с прозрачной кластеризацией?

Вопрос точно про stateless? А то я слегка в недоумении для чего их кластеризировать-то?
На счет "прозрачности" кластеризации в J2EE это вообще шутка.

А вообще без проблем. Держим POJO инстансы в памяти как замену stateful, реплизируем терракоттой, и кеши так же.
Statless по сути бин scope="request".
...
Рейтинг: 0 / 0
22.02.2011, 18:12
    #37131153
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
pilot911что-то непонятно, есть EE серверы - что это значит, тогда, если авторизация зависит от вендора? вроде, эти сервера проходят тестирование в сан, чтобы называться EE-соответствующими
Нет никакого общего интерфейса для Realm. J2EE приложение вообще не может с этим самым Realm взаимодействовать. Он просто как-то конфигуряется средствами самого сервера и у каждого сервера он конфигуряется и реализуется по разному.
...
Рейтинг: 0 / 0
22.02.2011, 18:20
    #37131166
VoDA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
Blazkowiczpilot911что-то непонятно, есть EE серверы - что это значит, тогда, если авторизация зависит от вендора? вроде, эти сервера проходят тестирование в сан, чтобы называться EE-соответствующими
Нет никакого общего интерфейса для Realm. J2EE приложение вообще не может с этим самым Realm взаимодействовать.Вроде в JavaEE 6 грозились догнать Spring и сделать доступ к реалму из приложения и возможность программного логин/логаут.
...
Рейтинг: 0 / 0
22.02.2011, 18:23
    #37131174
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
VoDAВроде в JavaEE 6 грозились догнать Spring и сделать доступ к реалму из приложения и возможность программного логин/логаут.
Ну и в чем удовольствие быть всё время в роли догоняющего? Ждать пока сделают спеку на Quartz. Ждать пока сделают спеку на Hibernate и получить в результате куцый JPA, и т. д.
По данному вопросу можно просто прикрутить Spring Security к чему угодно и получить доступ ко всем его механизмам.
...
Рейтинг: 0 / 0
22.02.2011, 19:01
    #37131224
VoDA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
BlazkowiczНу и в чем удовольствие быть всё время в роли догоняющего? Ждать пока сделают спеку на Quartz. Ждать пока сделают спеку на Hibernate и получить в результате куцый JPA, и т. д.
По данному вопросу можно просто прикрутить Spring Security к чему угодно и получить доступ ко всем его механизмам.спецификация ДЛЯ ВСЕХ всегда должна отставать от острия технологий. это нужно чтобы отделить полезные многим технологии от просто изредка удобных.

Я считаю, что появление JSR-303 Bean Validation это хорошо. Не смотря на то, что пользуюсь Hibernate-validator по которому спека и была написана.

Я за развитие и модернизацию спек, как базы для дальнейшего развития. И за развитие отдельных проектов типа Spring или Hibernate.

PS некоторые Spring проекты у меня вызывают недоумение и хорошо, что они не проскакивают в JCP/JSR.
...
Рейтинг: 0 / 0
23.02.2011, 07:09
    #37131660
Baur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaEE - аутентификация
BlazkowiczДа, где-то так. Осталось проверить.

*filter*
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
 package  filter;
 import  java.io.IOException;
 import  javax.servlet.Filter;
 import  javax.servlet.FilterChain;
 import  javax.servlet.FilterConfig;
 import  javax.servlet.ServletException;
 import  javax.servlet.ServletRequest;
 import  javax.servlet.ServletResponse;
 import  javax.servlet.annotation.WebFilter;
 import  javax.servlet.http.HttpServletRequest;
 import  javax.servlet.http.HttpServletResponse;

@WebFilter(filterName="LoginFilter", urlPatterns={"/j_security_check"})
 public   class  LoginFilter  implements  Filter {
     public   void  doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain)
	 throws  IOException, ServletException {
        HttpServletRequest httpRequest = (HttpServletRequest) request;
	 try  {
              chain.doFilter(request, response);
               int  status =  ((HttpServletResponse) response).getStatus();
               if  (status ==  200 ){
               //get user data
                httpRequest.getSession().setAttribute("status", status);
               } 
	}
	 catch (Throwable t) {
	    t.printStackTrace();
	}
    }

    @Override
     public   void  init(FilterConfig filterConfig) {}
    @Override
     public   void  destroy() {}
}

*jsp*
Код: plaintext
<p>status=${status}</p>

не сработало
status null
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaEE - аутентификация / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]