Tworzenie sesji z danymi użytkownika

0

Witam,
tworzę projekt wirtualnej biblioteki.
Aplikacja powinna umożliwić:

  • przeglądanie zasobów (spis ksiazek) zalogowanemu studentowi,
  • rezerwacje ksiazki przez studenta,
  • przegladac historie wypozyczen zalogowanego studenta
    Całość realizuję w JSF + MySQL.
    Mam pytanie dotyczące korzystania z aplikacji przez wiele osób (2-3), tak by każda widziała tylko swoje wypożyczenia.
    Rozumiem, żeby wszystko działało trzeba stworzyć sesje i w niej trzymać informacje o użytkowniku.
    Wyczytałem, że użycie @SessionScoped jest pewnego rodzaju rozwiązaniem natomiast może dojść do sytuacji że jeden użytkownik będzie widział/zmieniał dane drugiego.
    Jak temu zapobiec?
    W jaki sposób mogę ograniczyć dane studenta do jego sesji, tak by dana osoba widziała tylko swoje dane?
0

Trzeba wyróżnić dwa problemy:

  1. Problem z dzieleniem sesyjnych danych. Annotacja @SessionScoped, jeśli zostanie zrealizowana poprawnie, czyli:
  • żaden element o scope większym niż session (View, Application?) nie powinien mieć dostępu do tych beanów - kwestia implementacji
  • uzyskasz pewność, że nie da się podszyć pod sesję drugiego użytkownika - kwestia security
  1. Problem z bazą danych, nakładanie się zmian w bazie danych - kwestia zaprojektowania odpowiedniej struktury w DB
0

Załóżmy że kwestie bazy mozemy pominąć.
Co rozumiesz przez kwestie security? - cale logowanie oparte jest na j_security_check i teraz po zalogowaniu trzeba zrobic tak, zeby ten student ktory sie wlasnie zalogowal mogl przegladac i wypozyczac/rezerwowac sobie ksiazki. Problem jest jak sie zaloguje drugi student to mielismy sytuacje ze ten pierwszy widzial ksiazki drugiego. Jak mozna przypisac studenta albo zabezpieczyc sesje przed taka sytuacja?

0

Czyli security jest OK.

Natomiast jeśli mieliście taki problem, że w SessionScope jeden użytkownik widział dane sesyjne drugiego, to jest to na 95% błąd implementacji, tzn. gdzieś musi istnieć wspólny bean z danymi.

0

a sesje przy logowaniu tworzycie nową ?:)

0

A ten drugi student korzystał z tego samego komputera co pierwszy?
Może po prostu pierwszy się nie wylogował...

1 użytkowników online, w tym zalogowanych: 0, gości: 1