Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Сохранение результатов аутентификации в сеансе


Автор: salat 20.12.2009, 15:12
Граждане, помогите, пожалуйста, разобраться в вопросе.

Имеется сервер к которому подключаются пользователи проходя аутентификацию. Так вот как организовать при помощи @Stateful сохранение результатов аутентификации в сеансе, т.е. клиент подключился и работает с сервером, как именно сделать чтобы проверка того что пользователь авторизован, шла не при повторном отсыле логина и пароля например, а по какой то переменной уже определенной в сеансе. Как я понимаю нужно организовать что то вроде

Код

@Stateful
public class VoteSystemSessionBean implements VoteSystemSessionRemote, VoteSystemSessionLocal {
    @PersistenceContext
    private EntityManager em;

    private boolean online;

    @PostConstruct
    @PostActivate
    public void initOnline() {
        online = true;
    }

    @PreDestroy
    @PrePassivate
    public void deinitOnline() {
        online = false;
    }

    public int authentication(String login, String password) {
        Query query = em.createNamedQuery("Person.findByLoginAndPassword");
        query.setParameter("login", login);
        query.setParameter("password", password);
        query.setMaxResults(1);
        List logpas = query.getResultList();

        if(logpas.size() > 0 && ((Person)logpas.get(0)).getIdPerson() == 9)
            return 1;
        else if(logpas.size() > 0 && ((Person)logpas.get(0)).getIdPerson() != 9)
            return 2;
        else
            return 0;

    }

    public void persist(Object object) {
        em.persist(object);
    }


Но как сделать, чтобы проверка шла по переменной online, что пользователь аутентифицирован. И как собственно клиент подтверждает это, т.е. при выполнении любого удаленного метода проверять значение пременной online установлена ли она в true? не могу понять сам принцип... 

Автор: Joss 21.12.2009, 09:57
В случае веб приложения проще использовать сессии. Имхо, stateful beans - недешевое удовольствие

Автор: salat 22.12.2009, 09:53
Дааа снижение масштабируемости точно можно выхватить)) просто такое условие в задании. Используется Application Client Module.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)