shiro-uaa ist ein einfacher Benutzerkonto- und Identitätsauthentifizierungslösungsdienst (UAA), der auf Shiro basiert.
Wenn Sie ein Projekt zum ersten Mal starten, wird die Einfachheit von Shiro meiner Meinung nach die erste Wahl für das Berechtigungsframework der meisten Entwickler sein. Wenn das Projekt jedoch von 1 auf n erweitert wird und eine einheitliche Authentifizierung und Autorisierung erfordert, unterstützt Shiro selbst keine einheitliche Authentifizierung und Autorisierung . ist zu einer Einschränkung geworden, aber CAS ist ein anderer Satz von Frameworks, der schwerer ist. Um den Authentifizierungs- und Autorisierungsdienst einfacher, leichter und benutzerfreundlicher zu machen, wurde Shiro-UAA entwickelt.
Leichter UAA-Server
Reiner Shiro
Leicht zu erlernen
Einfach zu erweitern
Sofort einsatzbereit
1.Auth-Server
Maven
Integrierter Endpunkt
Beschreibung der URI-Adresse/uaa-auth/authenticationDie Adresse zum Anfordern der Autorisierung wird an Ihre Anmeldeseite weitergeleitet/uaa-auth/authentication/apporveAuth Der Server stimmt der Autorisierung zu und verteilt den Code Adresse/uaa-auth/access-token, um Zugriff zu erhalten die Auth-Server-Token-Adresse/uaa-auth/logout-Adresse, um sich vom Auth-Server abzumeldenErweiterbare API
Beschreibung des Schnittstellennamens AccessClientService Zugriffsanwendungsdienst AccessTokenService Zugriffstokendienst AccountService-Benutzerdienst AuthCodeServicecode-Dienst RoleService-RollendienstLogin
Passen Sie die Anmeldeseite und die Anmeldeüberprüfung an, implementieren Sie org.apache.shiro.authc.credential.CredentialsMatcher, implementieren Sie die Überprüfungslogik während der Anmeldung und konfigurieren Sie shiro.loginUrl
vorwärtsError
Wenn auf dem Server ein OAuthProblem auftritt, wird standardmäßig zur Ressourcenadresse (Parameter „redirect_uri“) gesprungen. Wenn „forwardErrorUrl“ konfiguriert ist, erfolgt keine Umleitung und Anzeige der Fehlerseite. Die Seite muss angepasst und konfiguriert werden .uaa .server.forwardErrorUrl, der Zweck dieser Konfiguration besteht darin, abnormale Sprünge über den Server zu verhindern
Erweiterte Konfigurationsparameter
Beschreibung des Parameternamens shiro.uaa.server.codeExpiresUAA-Verteilung Code-Ablaufzeit, die Einheit ist Sekunden shiro.uaa.server.accessTokenExpiresUAA-Verteilung AccessToken-Ablaufzeit, die Einheit ist Sekunden shiro.uaa.server.refreshTokenExpiresUAA-Verteilung RefreshToken-Ablaufzeit, die Einheit ist shiro Sekunden. loginUrl benutzerdefinierte Anmeldeadresse shiro.uaa.server.clients[].name Zugriffsanwendungsname, gültig bei Verwendung des Standardspeichers AccessClientService shiro.uaa.server.clients[].clientId Zugriffsanwendungs-ClientId, gültig bei Verwendung des Standardspeichers AccessClientService shiro.uaa.server.clients[].clientSecret Zugriffsanwendung clientSecret, gültig bei Verwendung des Standardspeichers AccessClientService shiro.uaa.server.roles[].name Rollenname, entsprechend Shiros Rolle, gültig bei Verwendung des Standardspeichers RoleService shiro .uaa .server.roles[].permCodes[] Rollenberechtigungen, entsprechend Shiros Berechtigung, gültig bei Verwendung des Standardspeichers RoleService shiro.uaa.server.roles[].clientId Die Anwendung, zu der die Rolle gehört, gültig bei Verwendung von Standardspeicher RoleService shiro.uaa.server .accounts[].username Kontoanmeldename, gültig bei Verwendung des Standardspeichers AccountService shiro.uaa.server.accounts[].password Kontokennwort, gültig bei Verwendung des Standardspeichers AccountService shiro.uaa. server.accounts[].roles[]-Konto Hat eine Rolle und ist gültig, wenn die Standardspeicher-AccountService shiro.uaa.server.forwardErrorUrl benutzerdefinierte OAuthProblem-Fehleradresse verwendet wird2.Ressourcenserver
Maven
filterChainDefinition
Implementieren Sie CustomFilterChainDefinition, definieren Sie verschiedene Pfade, die durch verschiedene Filter geleitet werden sollen, der Standardwert /** geht durch resourcesServerFilter
Abmelden
Melden Sie sich zuerst vom Ressourcenserver ab, dann von der UAA und konfigurieren Sie den Parameter shiro.logoutUrl zum Laden von LogoutEndpoint
Anmerkung
Das Gleiche wie Shiro
Anmerkungsname@RequiresRoles@RequiresPermissions@RequiresUser@RequiresAuthentication@RequiresGuestErweiterte Konfigurationsparameter
Beschreibung des Parameternamens Shiro.uaa.resource.serverSchemeUAA-Adresse Schemeshiro.uaa.resource.serverHostUAA-Adresse Hostshiro.uaa.resource.serverPortUAA-Adresse Portshiro.uaa.resource.serverContextPathUAA-Adresse ContextPathshiro.uaa.resource.clientIdUAA zugewiesene ClientIdshiro. uaa.resource.clientSecretClientSecretshiro .logoutUrlResource Von der UAA zugewiesene Server-Abmeldeadresse3. Biz-Logger
Erfassen Sie die Geschäftsunterlagen des Benutzers
Anmerkung
Annotationsname @BizLogger Annotationsmethode Beschreibung Bemerkung Anmerkungen, Standard: „“class_whether, um den Klassennamen aufzuzeichnen, Standard: truemethod, ob der Methodenname aufgezeichnet werden soll, Standard: truearguments muss den Index des Parameters aufzeichnen, Standard: {}return_whether, um aufzuzeichnen der Rückgabewert, Standard:falsesubjectOb der Benutzername aufgezeichnet werden soll, Standard: trueBizLoggerEntityStringifier
Implementieren Sie BizLoggerEntityStringifier und passen Sie den Ausgabeinhalt des Loggers an
jdk1.8+ und Spring Boot
Stellen Sie auf dem Authentifizierungsserver bereitstellbare Dienste bereit
Stellen Sie dem Authentifizierungsserver Benutzermetriken zur Verfügung