2012-09-01 12 views
5

Staram się psychicznie map Java EE 6 koncepcje zabezpieczeń grup, użytkowników i ról do Concepts Apache Shiro „s role, użytkowników i pozwoleń i rozumiem, że są niezgodne.Java EE 6 grup, użytkowników i role -vs- Shiro role, użytkowników i uprawnienia

Odczytywanie przez Java EE 6 security tutorial Wydaje się, że model jest zbyt restrykcyjna: grup są konfigurowane na każdym serwerze, a nie dla poszczególnych aplikacji podstawie których naprawdę pozostawia nam tylko dwóch elastycznych pojęć wyrazić mechanizm autoryzacji: użytkownicy i role, istniejący w prostej relacji 1 do N. W odróżnieniu od modelu Shiro z ról, użytkowników i uprawnieniami jest dużo bardziej dynamiczny, ponieważ umożliwia jednego hardcode uprawnienia w adnotacjami kodu i zmodyfikować mapowanie ról do uprawnienia przy starcie jak rzeczy zmienić lub wprowadzać nowe role. Nie widzę sposobu, w jaki można zrobić to samo z autoryzacją zarządzaną przez kontener, zgodnie z modelem Java EE 6.

Czy moje zrozumienie jest prawidłowe? Powoduje to, że nie można bardzo daleko posunąć się za autoryzacją zarządzaną przez kontener.

Odpowiedz

2

Nie są one zgodne i myślę, że projektanci zabezpieczeń Java EE popełnili błąd, ponieważ terminologia wydaje się wyłączona w odniesieniu do ROLES.

Z doświadczenia wiem, że zapewnienie kontroli dostępu w oparciu o ROLĘ (co sugeruje dokumentacja) powoduje problemy po drodze, gdy chce się otworzyć zdolność do innych grup/ról. Dostęp oparty na uprawnieniach zmapowany z powrotem do ról (lub grup) wydaje się działać najlepiej, ponieważ jest to ponowne mapowanie na poziomie abstrakcyjnym, a nie rekodowanie/ponowna adnotacja.

Widzę, jak można by pomylić z modelem zabezpieczeń Java EE. Proponuję przyjrzeć się bliżej Shiro i dowiedzieć się, jak to modeluje zabezpieczenia na poziomie aplikacji. Les Hazelwood, twórca Shiro, napisał blog about RBAC, który ma wiele sensu dla aplikacji wymagających drobnoziarnistej kontroli nawet do poziomu instancji poziomu.

Powiązane problemy