Я получил рукописную защиту, простой сервлет-фильтр, который перенаправляет не авторизованного пользователя на его страницы входа.Контроллер входа перенаправляет их на запрошенный URL после успешной аутентификации или на их главную страницу.Этот подход прекрасно работает, единственный недостаток в том, что я должен передать объект User, который хранится в HttpSession, через трассировку стека EJB-компонентам.
Теперь я переписал некоторый код и использую Spring-security в качестве аутентификации на основе http.Он автоматически интегрируется с Glassfish JAAS.
Мне больше не нужно передавать User через stacktrace, достаточно вызова sessionContext.getCallerPrincipal()
.Но основной объект возвращает мне только userName, а не userId, поэтому я должен выполнить сложение select, если мне нужен, например, userId.
1) Есть ли способ расширить объект Principal, чтобы он мог хранить больше свойств?
2) Почему я должен использовать JAAS или Spring Security или другую инфраструктуру безопасности, а не просто рукописный фильтр сервлетов?