Как использовать Shiro для аутентификации пользователя cookie или пользователя facebook?

В моем веб-приложении у меня нет регистрации пользователей/входа в систему. У меня есть учетная запись пользователя, которая автоматически создается, когда пользователь впервые посещает сайт на основе файла cookie. Как я могу использовать Shiro для этой цели, чтобы аутентифицировать такого пользователя (а также воспользоваться его другими функциями безопасности в Интернете)?

Если пользователь выбирает логин через соединение Facebook, то как я могу использовать Shiro для этого сценария?

Ответ 1

Хорошо, после того, как JohnS сказал мне, что связанное сообщение в блоге не работает, и какое-то время прошло, я переработал свой ответ.

В моем понимании, Apache Shiro не поддерживает (на момент написания этой статьи) OAuth, см. SHIRO-21 и SHIRO-119, а также комментарии к ним.

Существуют две библиотеки, которые упрощают OAuth, Scribe и pac4j.

  • Scribe используется GAEShiro, который включает в себя мост между писцом и Сиро.
  • Pac4J используется buji-pac4j, который является веб-клиентом нескольких протоколов для Apache Shiro. На связанной странице есть демонстрационная версия с доступной аутентификацией Facebook, см. здесь. Я предлагаю использовать эту демонстрацию как начало.

Пожалуйста, прочитайте Facebook OAuth 2.0 и Аутентификация на стороне сервера). Если вы хотите, чтобы ваш сайт использовал OAuth 2.0, вам нужно следовать руководству по ссылкам.

Существует также упомянутый пост в блоге, и вы также можете использовать Spring безопасность и Spring social, см. Подписание с учетными записями поставщика услуг.