Граждане, помогите, пожалуйста, разобраться в вопросе.
Имеется сервер к которому подключаются пользователи проходя аутентификацию. Так вот как организовать при помощи @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? не могу понять сам принцип... |