Wpis z mikrobloga

#java
#jee
#pytaniedoeksperta
#spring

Może mi ktoś wyjaśnić kwestię zabezpieczenia aplikacji w JEE 7 ?
O ile w Spring Security jest to dosyć przejrzyste to w JEE mam pewne problemy jak dobrze to zrobić.
Spring nie zależy od serwera aplikacyjnego bo jak wiem JEE jest specyfikacją i każdy serwer implementuje ją po swojemu o ile ją w całości implementuje ( ͡° ͜ʖ ͡°).

Robiąc w Springu prostą autentykację i autoryzację w oparciu o dane zapisane w relacyjnej bazie jesteśmy w jakiś sposób uzależnieni od jej schematu czyli relacji i ich powiązań.

Korzystając oczywiście z ORMa (Hibernate) mamy zazwyczaj takie klasy(encje/tabele):

User 1-------------N UserRoles N----------------1 Roles

Wiadomo klasa User implementuje wymagany interfejs UserDetails , w pliku xml definiujemy resztę np:
stronę logowania
ścieżki url pod jakie możemy się dostać z daną rolą lub bez niej
sesje
filtry
itp itp itp.
To jest oczywiste, dzięki temu nazwijmy to nasza polityka bezpieczeństwa jest "przenośna" = nie zależy od danego serwera aplikacji, bo Spring Security korzysta z Servlet API.

Pytanie jak to zrobić w JEE 7 z serwerem WildFly 8.2
Korzystam z Hibernate - wiadomo - jboss,
JSF, EJB 3

Czy mogę tak samo jak w Springu zrobić odpowiedni model w bazie użytkownicy role itp?
JavaEngineer - #java
#jee
#pytaniedoeksperta
#spring

Może mi ktoś wyjaśnić kwes...

źródło: comment_mLxELXQWjfhs7kgdEyek5mNVxTMaE1vW.jpg

Pobierz
  • 5
@cajar: To nie jest pytanie na moją odpowiedź.
Jak mam model konceptualny bazy i mam User N ----------- N Roles to co się w modelu fizycznym dzieje ?

Po stronie Hibernate (klas w JAvie jak tam sobie to nazwiesz) moge miec :
Klase User i klase Roles i dac manytomany i nie miec klasy UserRoles w kodzie lub
zrobic to inaczej mieć 3 klasy i tak jak wyżej napisałem ...
@JavaEngineer: IMHO źle do tego podchodzisz. To co jest w bazie nie musi, a nawet nie powinno w żaden sposób wpływać na kształt kodu. Użytkownika ma role, a role składają się z listy uprawnień. I tak powinno to być odwzorowane w kodzie. Czym wg Ciebie miała by być klasa UserRoles?