2015-08-10 12 views
0

Я знаю, как от-login на веб-приложении javaee и защищать ресурс URI от неидентифицированных пользователей. Работает.Как использовать javax.security (JAAS) программно?

Теперь я подумал об использовании всей структуры безопасности Java EE, которая уже существует, просто потому, что я хочу избежать дублирования кода и сделать его еще хуже. Я хочу, чтобы не создавать @Entity бобы, которые уже доступны. Таким образом, я хочу защитить свои EJB, Backing Bean, CDI beans и URI Resource. Все с той же концепцией. т.е. мне нужно:

  • Role -> javax.managagement.relation.Role
  • Group -> java.security.acl.Group ???
  • User -> java.security.Principal

В макс, я хочу расширить существующую реализацию и использование более конкретной реализации. Например. User -> Пользователь с firstname, lastname и т.д.

Есть ли уже интерфейс User в безопасности Java EE или даже реализации?

Кроме того, если пользователь идентифицирован с помощью входа на основе формы, могу ли я проверить разрешение пользователя также в EJB (например, @Stateless)? Например. с @RolesAllowed("admin"). Перефокусировка: Имеет ли статус входа в систему также и контекст EJB, а не только в контексте сети? (Я имею в виду, это тот же контейнер, он должен, правильно?)

ответ

2

Существует класс java.security.Principal (например, javax.servlet.http.HttpServletRequest # getUserPrincipal). Он имеет метод getName. Вы должны создать пользовательский модуль входа для своего сервера приложений, если хотите расширить объект Principal с новыми полями.

+0

Благодарим за ввод. Я программирую Java некоторое время, но я не мог связать модуль с концепцией Java. Как бы Вы это сделали? Не могу ли я просто реализовать класс Principal и сохранить его как @Entity? То же самое с группой (что соответствует группе в концепции безопасности Java EE?) И роли? – feder

+1

Я от вашего сервера приложений. Можете ли вы указать свой сервер приложений и версию (Tomcat, Weblogic, Wildfly, Jboss и т. Д.)? – sibnick

+0

Я действительно хочу отделить его от любого сервера приложений. Он должен запускаться на каждом сертифицированном сервере приложений Java EE 7. – feder

 Смежные вопросы

  • Нет связанных вопросов^_^