shiro-uaa est un service léger de compte utilisateur et de solution d'authentification d'identité (UAA) basé sur Shiro.
Lorsque vous démarrez un projet pour la première fois, je pense que la simplicité de Shiro deviendra le premier choix pour le cadre d'autorisation de la plupart des développeurs. Cependant, lorsque le projet s'étend de 1 à n et nécessite une authentification et une autorisation unifiées, Shiro lui-même ne prend pas en charge l'authentification et l'autorisation unifiées. . est devenu une limitation. Shiro a CasFilter, mais CAS est un autre ensemble de frameworks, plus lourd. Afin de rendre le service d'authentification et d'autorisation plus simple, plus léger et plus facile à utiliser, Shiro-UAA a été créé.
Serveur UAA léger
Shiro pur
Facile à apprendre
Facile à étendre
Prêt à l'emploi
1.serveur d'authentification
maven
Point de terminaison intégré
Description de l'adresse URI/uaa-auth/authenticationL'adresse de demande d'autorisation sera dirigée vers votre page de connexion/uaa-auth/authentication/apporveAuth Le serveur s'engage à autoriser et distribue le code adresse/uaa-auth/access-token pour obtenir l'accès depuis l'adresse du jeton du serveur d'authentification/uaa-auth/adresse de déconnexion pour se déconnecter du serveur d'authentificationAPI extensible
Nom de l'interface description Service d'application d'accès AccessClientService Service de jeton d'accès AccessTokenService Service utilisateur AccountService Service AuthCodeServicecode Service de rôle RoleServicese connecter
Personnalisez la page de connexion et la vérification de connexion, implémentez org.apache.shiro.authc.credential.CredentialsMatcher, implémentez la logique de vérification lors de la connexion et configurez shiro.loginUrl
avantErreur
Par défaut, lorsqu'un OAuthProblem se produit sur le serveur, il passera à l'adresse de la ressource (paramètre redirect_uri) avec les informations d'erreur. Si forwardErrorUrl est configuré, il ne redirigera pas et n'affichera pas la page d'erreur. La page doit être personnalisée et configurer Shiro. .uaa .server.forwardErrorUrl, le but de cette configuration est d'éviter les sauts anormaux à l'aide du serveur
Paramètres de configuration étendus
Nom du paramètre description shiro.uaa.server.codeExpiresUAA distribution Délai d'expiration du code, l'unité est en secondes shiro.uaa.server.accessTokenExpiresUAA distribution Délai d'expiration AccessToken, l'unité est en secondes shiro.uaa.server.refreshTokenExpiresUAA distribution RefreshToken délai d'expiration, l'unité est shiro seconds. loginUrl adresse de connexion personnalisée shiro.uaa.server.clients[].name nom de l'application d'accès, valide lors de l'utilisation de la mémoire par défaut AccessClientService shiro.uaa.server.clients[].clientId application d'accès clientId, valide lors de l'utilisation de la mémoire par défaut AccessClientService shiro.uaa.server.clients[].clientSecret application d'accès clientSecret, valide lors de l'utilisation de la mémoire par défaut AccessClientService shiro.uaa.server.roles[].name nom de rôle, correspondant au rôle de Shiro, valide lors de l'utilisation de la mémoire par défaut RoleService shiro .uaa .server.roles[].permCodes[] autorisations de rôle, correspondant à l'autorisation de Shiro, valides lors de l'utilisation de la mémoire par défaut RoleService shiro.uaa.server.roles[].clientId L'application à laquelle appartient le rôle, valide lors de l'utilisation du mémoire par défaut RoleService shiro.uaa.server .accounts[].username nom de connexion au compte, valide lors de l'utilisation de la mémoire par défaut AccountService shiro.uaa.server.accounts[].password mot de passe du compte, valide lors de l'utilisation de la mémoire par défaut AccountService shiro.uaa. compte server.accounts[].roles[] A un rôle et est valide lors de l'utilisation de la mémoire par défaut AccountService shiro.uaa.server.forwardErrorUrl adresse d'erreur OAuthProblem personnalisée2.serveur de ressources
maven
filterChainDefinition
implémentez CustomFilterChainDefinition, définissez différents chemins pour passer à travers différents filtres, le /** par défaut passe par ResourceServerFilter
déconnexion
Déconnectez-vous d'abord du serveur de ressources, puis déconnectez-vous de l'UAA, configurez le paramètre shiro.logoutUrl pour charger LogoutEndpoint.
annotation
Pareil que Shiro
Nom de l'annotation@RequiresRoles@RequiresPermissions@RequiresUser@RequiresAuthentication@RequiresGuestParamètres de configuration étendus
Nom du paramètre Description Adresse Shiro.uaa.resource.serverSchemeUAA Adresse Schemeshiro.uaa.resource.serverHostUAA Adresse Hostshiro.uaa.resource.serverPortUAA Adresse Portshiro.uaa.resource.serverContextPathUAA Adresse ContextPathshiro.uaa.resource.clientIdUAA attribuée à ClientIdshiro uaa.resource.clientSecretClientSecretshiro. .logoutUrlResource Adresse de déconnexion du serveur attribuée par UAA3. biz-logger
Enregistrer les dossiers professionnels de l'utilisateur
annotation
Nom de l'annotation @BizLogger description de la méthode d'annotation remarque remarques, par défaut : ""class_whether pour enregistrer le nom de la classe, par défaut : truemethod s'il faut enregistrer le nom de la méthode, par défaut : truearguments doit enregistrer l'index du paramètre, par défaut : {}return_whether pour enregistrer la valeur de retour, par défaut :falsesubjectQue ce soit pour enregistrer le nom d'utilisateur, par défaut : trueBizLoggerEntityStringifier
implémenter BizLoggerEntityStringifier, personnaliser le contenu de sortie de l'enregistreur
jdk1.8+ et Spring Boot
Fournir des services déployables sur le serveur d'authentification
Fournir des métriques utilisateur au serveur d'authentification