1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xfslove-shiro-uaa

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

shiro-uaa

A lightweight User Account and Authentication (UAA) Server base on Shiro.

Источник

Когда только начинается проект, Shiro может стать предпочтительным выбором для большинства разработчиков в качестве фреймворка авторизации. Однако, когда проект расширяется от 1 до n и требуется единая аутентификация и авторизация, ограничения Shiro становятся очевидными. Хотя у Shiro есть CasFilter, CAS представляет собой отдельный фреймворк, который может быть слишком громоздким. Чтобы сделать сервисы аутентификации и авторизации более простыми, лёгкими и удобными в использовании, был создан Shiro-UAA.

Почему стоит использовать shiro-uaa?

  • Лёгкий UAA Server.
  • Чистый Shiro.
  • Простота изучения.
  • Легкость расширения.
  • Готовое к использованию решение.

Процесс аутентификации и авторизации

map.png

Описание

auth-server

Maven
<dependency>
    <groupId>com.github.xfslove</groupId>
    <artifactId>shiro-uaa-auth-server</artifactId>
    <version>1.0.7-SNAPSHOT</version>
</dependency>
Встроенные endpoint
URI адрес Описание
/uaa-auth/authentication Запрос на авторизацию, перенаправляет на страницу входа
/uaa-auth/authentication/apporve Auth Server одобряет авторизацию и отправляет код доступа
/uaa-auth/access-token Получение access-токена с Auth Server
/uaa-auth/logout Выход из Auth Server
Расширяемые API
Интерфейс Описание
AccessClientService Подключение к сервисам приложений
AccessTokenService Сервис access-токенов
AccountService Сервис пользователей
AuthCodeService Сервис кодов
RoleService Сервис ролей
Login

Можно настроить собственную страницу входа и логику проверки подлинности, реализовав интерфейс org.apache.shiro.authc.credential.CredentialsMatcher. Конфигурация выполняется через shiro.loginUrl.

ForwardError

По умолчанию, при возникновении ошибки OAuth, сервер перенаправляет пользователя на адрес, указанный в параметре redirect_uri. Если настроено shiro.uaa.server.forwardErrorUrl, то вместо перенаправления отображается страница с ошибкой. Страница должна быть настроена пользователем. Конфигурация осуществляется через shiro.uaa.server.forwardErrorUrl. Эта конфигурация предназначена для предотвращения использования сервера для ненормальных перенаправлений.

Параметры конфигурации для расширения
Параметр Описание
shiro.uaa.server.codeExpires Срок действия кода, выданного UAA, в секундах
shiro.uaa.server.accessTokenExpires Срок действия access-токена, выданного UAA, в секундах
shiro.uaa.server.refreshTokenExpires Срок действия refresh-токена, выданного UAA, в секундах
shiro.loginUrl Настроенный адрес входа
shiro.uaa.server.clients[].name Имя приложения для подключения
shiro.uaa.server.clients[].clientId Идентификатор клиента приложения для подключения
shiro.uaa.server.clients[].clientSecret Секрет клиента приложения для подключения
shiro.uaa.server.roles[].name Название роли, соответствующее Shiro Role
shiro.uaa.server.roles[].permCodes[] Разрешения роли, соответствующие Shiro Permission
shiro.uaa.server.roles[].clientId Приложение, которому принадлежит роль
shiro.uaa.server.accounts[].username Логин учётной записи
shiro.uaa.server.accounts[].password Пароль учётной записи
shiro.uaa.server.accounts[].roles[] Роли, которыми обладает учётная запись
shiro.uaa.server.forwardErrorUrl Пользовательский адрес ошибки OAuthProblem

resource-server

Maven
<dependency>
    <groupId>com.github.xfslove</groupId>
    <artifactId>shiro-uaa-resource-server</artifactId>
    <version>1.0.7-SNAPSHOT</version>
</dependency>
FilterChainDefinition

Реализовать интерфейс CustomFilterChainDefinition. ,定义不同的 path 经过不同的 Filter, 默认 /** 经过 resourceServerFilter

logout

Сначала необходимо выйти из Resource Server, а затем из UAA. Для этого нужно настроить параметр shiro.logoutUrl, который загружает LogoutEndpoint.

注解

Аналогично Shiro:

注解名
@RequiresRoles
@RequiresPermissions
@RequiresUser
@RequiresAuthentication
@RequiresGuest
Расширенные параметры конфигурации
Параметр имени Описание
shiro.uaa.resource.serverScheme Схема адреса UAA
shiro.uaa.resource.serverHost Хост адреса UAA
shiro.uaa.resource.serverPort Порт адреса UAA
shiro.uaa.resource.serverContextPath ContextPath адреса UAA
shiro.uaa.resource.clientId ClientId, назначенный UAA
shiro.uaa.resource.clientSecret ClientSecret, назначенный UAA
shiro.logoutUrl Адрес выхода из Resource Server
  • biz-logger

    Запись бизнес-логики пользователя.

    Maven
<dependency>
    <groupId>com.github.xfslove</groupId>
    <artifactId>shiro-uaa-biz-logger</artifactId>
    <version>1.0.7-SNAPSHOT</version>
</dependency>
注解
注解名
@BizLogger
Метод аннотации Описание
remark Примечание, по умолчанию: ""
class_ Регистрировать ли имя класса, по умолчанию: true
method Регистрировать ли имя метода, по умолчанию: true
arguments Индекс параметров, которые необходимо зарегистрировать, по умолчанию: {}
return_ Регистрировать ли возвращаемое значение, по умолчанию: false
subject Регистрировать ли имя пользователя, по умолчанию: true
BizLoggerEntityStringifier

Реализуйте BizLoggerEntityStringifier, чтобы настроить вывод содержимого logger.

Требуется

jdk1.8+ и spring boot

TODO

  • Предоставить возможность развёртывания auth-сервера как сервиса.
  • Добавить метрики пользователей для auth-сервера.

Пример

shiro-uaa-samples

Лицензия

Apache 2.0 license.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Широ-UAA — это сервис, представляющий собой облегчённое решение для аутентификации и авторизации пользователей, реализованное на основе фреймворка Shiro (User Account and Authentication, UAA). Развернуть Свернуть
Java
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xfslove-shiro-uaa.git
git@api.gitlife.ru:oschina-mirror/xfslove-shiro-uaa.git
oschina-mirror
xfslove-shiro-uaa
xfslove-shiro-uaa
1.0.7-SNAPSHOT