Аутентификация и авторизация JSF

Каков наилучший способ реализации аутентификации и авторизации для веб-приложения JSF? Предпочтительно, я все же хотел бы использовать защиту на основе контейнеров, поскольку мне нужно вызвать EJB, для которых требуется основной.

Я понимаю, что проверка подлинности на основе форм - это серьезная борьба с JSF, но могу ли я, возможно, использовать PhaseListener или что-то подобное вместе с программным входом для аутентификации пользователя?

Любые другие методы, над которыми мне стоит взглянуть?

Ответы

Ответ 1

Попробуйте проверить блог на с помощью JAAS с JSF. Это пример того, как развернуть JAAS с JSF для аутентификации и авторизации.

Надеюсь, это поможет.

Тайгер

Ответ 3

Я использую JSF Seam и использовал встроенную аутентификацию и авторизацию Seam и нашел ее чрезвычайно простой в использовании.

Для аутентификации вы просто реализуете 1 метод, public boolean login(String username, a String password) { ... } и возвращаете логическое значение. Затем вы можете пометить страницы как "необходимые для входа", и шов заботится обо всем остальном.

Для авторизации Seam дает вам @Restrict аннотацию, которую вы можете применить к своим методам Controller или Service, и снова Seam заботится обо всем остальном.

Расширенное разрешение: вы также можете обрабатывать более расширенную авторизацию с Seam, где роли динамические - например. на доске объявлений вы являетесь "автором" некоторых сообщений, но "читателем" или другими сообщениями, просто делегируя аннотацию @Restrict методу Java.

Я бы посоветовал вам взглянуть на Сима. Seam - это просто слой поверх JSF, так что технически вы все равно будете работать на JSF. Если по какой-то причине вы не можете использовать Seam, возможно, вы сможете заимствовать некоторые идеи из того, как Seam обрабатывает авторизацию и аутентификацию в JSF.