shiro-uaa — это упрощенная служба решения для учетных записей пользователей и аутентификации личности (UAA), основанная на Shiro.
Когда вы впервые запускаете проект, я считаю, что простота Shiro станет лучшим выбором для структуры разрешений большинства разработчиков. Однако, когда проект расширяется от 1 до n и требует унифицированной аутентификации и авторизации, Shiro сам по себе не поддерживает унифицированную аутентификацию и авторизацию. .. стал ограничением. У Shiro есть CasFilter, но CAS — это другой набор фреймворков, более тяжелый. Для того, чтобы сделать сервис аутентификации и авторизации более простым, легким и удобным в использовании, был создан Shiro-UAA.
Легкий сервер UAA
Чистый Широ
Легко учиться
Легко расширить
Готов из коробки
1.auth-сервер
знаток
<зависимость>Встроенная конечная точка
Описание адреса URI/uaa-auth/authenticationАдрес для запроса авторизации будет направлен на вашу страницу входа/uaa-auth/authentication/apporveAuth Сервер соглашается авторизовать и распространяет код адреса/uaa-auth/токена доступа для получения доступа-от адрес токена сервера аутентификации/uaa-auth/адрес выхода из системы для выхода из сервера аутентификацииРасширяемый API
Описание имени интерфейса Служба приложения доступа AccessClientService Служба маркеров доступа AccessTokenService Служба пользователя AccountService Служба AuthCodeServicecode Служба роли RoleServiceавторизоваться
Настройте страницу входа и проверку входа, реализуйте org.apache.shiro.authc.credential.CredentialsMatcher, реализуйте логику проверки во время входа в систему и настройте shiro.loginUrl.
переслатьОшибка
По умолчанию, когда на сервере возникает проблема OAuth, он переходит к адресу ресурса (параметр redirect_uri) с информацией об ошибке. Если настроенwardErrorUrl, он не будет перенаправляться и отображать страницу с ошибкой. Страница должна быть настроена и настроена shiro. .uaa .server.forwardErrorUrl, цель этой конфигурации — предотвратить ненормальные переходы с использованием Сервера
Расширенные параметры конфигурации
Описание имени параметра shiro.uaa.server.codeExpiresUAA Распределение Срок действия кода, единицы измерения — секунды. shiro.uaa.server.accessTokenExpiresUAA Распределение Срок действия AccessToken, единица измерения — секунды shiro.uaa.server.refreshTokenExpiresUAA Распределение RefreshToken Время истечения срока действия, единица измерения — секунды. shiro секунды. loginUrl пользовательский адрес входа в систему shiro.uaa.server.clients[].name имя приложения доступа, допустимо при использовании памяти по умолчанию AccessClientService shiro.uaa.server.clients[].clientId приложение доступа clientId, допустимо при использовании памяти по умолчанию. AccessClientService shiro.uaa.server.clients[].clientSecret приложение доступа clientSecret, допустимо при использовании памяти по умолчанию AccessClientService shiro.uaa.server.roles[].name имя роли, соответствующее роли Широ, допустимо при использовании памяти по умолчанию RoleService shiro .uaa .server.roles[].permCodes[] разрешения роли, соответствующие разрешению Широ, действительны при использовании памяти по умолчанию RoleService shiro.uaa.server.roles[].clientId Приложение, которому принадлежит роль, допустимо при использовании память по умолчанию RoleService shiro.uaa.server .accounts[].username имя для входа в учетную запись, действительно при использовании памяти по умолчанию AccountService shiro.uaa.server.accounts[].пароль учетной записи, действителен при использовании памяти по умолчанию AccountService shiro.uaa. Учетная запись server.accounts[].roles[] Имеет роль и действительна при использовании памяти по умолчанию AccountService shiro.uaa.server.forwardErrorUrl Пользовательский адрес ошибки OAuthProblem2.ресурс-сервер
знаток
<зависимость>filterChainDefinition
реализовать CustomFilterChainDefinition, определить разные пути для прохождения через разные фильтры, значение по умолчанию /** проходит через resourcesServerFilter
выход из системы
Сначала выйдите из сервера ресурсов, затем выйдите из UAA, настройте параметр shiro.logoutUrl для загрузки LogoutEndpoint.
аннотация
То же, что и Широ
Имя аннотации@RequiresRoles@RequiresPermissions@RequiresUser@RequiresAuthentication@RequiresGuestРасширенные параметры конфигурации
Описание имени параметра Shiro.uaa.resource.serverSchemeUAA адрес Schemeshiro.uaa.resource.serverHostUAA адрес Hostshiro.uaa.resource.serverPortUAA адрес Portshiro.uaa.resource.serverContextPathUAA адрес ContextPathshiro.uaa.resource.clientIdUAA присвоенный ClientIdshiro uaa.resource.clientSecretClientSecretshiro. .logoutUrlResource Адрес выхода из сервера, назначенный UAA3. бизнес-логер
Запись деловых записей пользователя
<зависимость>аннотация
Имя аннотации @BizLogger описание метода аннотации примечания, по умолчанию: ""class_whether для записи имени класса, по умолчанию: truemethod, записывать ли имя метода, по умолчанию: truearguments необходимо записывать индекс параметра, по умолчанию: {}return_whether для записи возвращаемое значение, по умолчанию: falsesubject, записывать ли имя пользователя, по умолчанию: trueБизлоггерEntityStringifier
реализовать BizLoggerEntityStringifier, настроить содержимое вывода журнала
jdk1.8+ и весенняя загрузка
Предоставление услуг развертывания сервера аутентификации
Предоставить пользовательские метрики на сервер аутентификации