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

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
JavaEE - аутентификация
    #37130677
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делал фильтр, который проверял:
- аутентифицирован ли пользователь
- если да -- есть ли дополнительные данные.
...
Рейтинг: 0 / 0
JavaEE - аутентификация
    #37130700
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зависит от того как у вас всё реализовано. Если всё по J2EE, то форму вы отправляете на j_security_check. Соответственно можно реализоваьт Servlet Filter, который будет отлавливать именно запросы к j_security_check и если на выходе из FilterChain нет статуса ошибки, то логин был успешным.

Если сразу делать через Spring Security, то там добавить интерцептор должно быть ещё проще.
...
Рейтинг: 0 / 0
JavaEE - аутентификация
    #37130717
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда я боролся по этой теме, обнаружил, что фильтр на j_security_check будет работать не на всех серверах. В частности на Томкате он не работает.
...
Рейтинг: 0 / 0
JavaEE - аутентификация
    #37130722
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
JavaEE - аутентификация
    #37130742
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. SakКогда я боролся по этой теме, обнаружил, что фильтр на j_security_check будет работать не на всех серверах. В частности на Томкате он не работает.
Можно завести свой URL с форвардом на j_security_check, главное чтобы форвард работал.
...
Рейтинг: 0 / 0
JavaEE - аутентификация
    #37130767
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Baurвот так???
[/src]Нет. Вы же не свой сервлет перехватываете. Надо через urlPatterns.

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

Код: 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
JavaEE - аутентификация
    #37130831
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое "/if " ?
...
Рейтинг: 0 / 0
JavaEE - аутентификация
    #37130834
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczА что такое "/if " ?

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

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


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

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

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

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



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

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

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

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

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

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

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

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

PS некоторые Spring проекты у меня вызывают недоумение и хорошо, что они не проскакивают в JCP/JSR.
...
Рейтинг: 0 / 0
JavaEE - аутентификация
    #37131660
Baur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
25 сообщений из 32, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaEE - аутентификация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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