Heim  >  Artikel  >  Java  >  Einführung in das Java Permission Framework: Shiros einheitliche Authentifizierung und Autorisierung

Einführung in das Java Permission Framework: Shiros einheitliche Authentifizierung und Autorisierung

php是最好的语言
php是最好的语言Original
2018-08-09 17:07:003621Durchsuche

Shiros einheitliche Authentifizierung und Autorisierung

Shiro ist ein einfaches und benutzerfreundliches Java-Berechtigungsframework unter Apache. Für einzelne Anwendungen kann Shiro die Berechtigungsanforderungen im Allgemeinen perfekt und schnell erfüllen die erste Wahl für Entwickler bei der Arbeit an Projekten.

Wenn Sie jedoch eine zweite, dritte oder n-te Anwendung erstellen müssen, die ebenfalls dieselbe Authentifizierung und Autorisierung erfordert, müssen Sie Shiro möglicherweise erweitern oder andere Frameworks integrieren. Es entspricht Ihren Anforderungen sehr gut.

Wie Shiro die Authentifizierung und Autorisierung durchführt

Shiro selbst hilft Ihnen nicht bei der Authentifizierung und Autorisierung, aber Shiro definiert einige Konzepte im Zusammenhang mit Berechtigungen sehr gut, sodass Sie bestimmte Implementierungen durchführen können

  • Authentifizierung
    In Shiro ist der Abschluss der Authentifizierung im Allgemeinen subject.login(token), Subject stellt einen Benutzer dar und Token stellt die Autorisierungsinformationen dar, die übermittelt werden, wenn ein Benutzer eine Autorisierung anfordert, über AuthenticatingRealm .doGetAuthenticationInfo() ruft einige Informationen über den aktuellen Betreff ab, z. B. Principals und Anmeldeinformationen, und überprüft das übermittelte Token. Wenn die Anmeldung erfolgreich ist, speichern Sie den aktuell angemeldeten Benutzer

  • Autorisierung
    Shiro, die Berechtigungskontrolle ähnelt im Allgemeinen @RequiresPermissions. Wenn ein Benutzer auf eine geschützte Ressource zugreift, verwendet Shiro AuthorizingRealm.doGetAuthorizationInfo(), um die Berechtigungen des Benutzers von den Prinzipalen des aktuell authentifizierten Subjekts abzurufen, um zu bestimmen, ob der Benutzer auf die Ressource zugreifen kann

In Shiro werden die beiden oben genannten Dinge durch die Implementierung von Realm erreicht. Wenn Sie eine einzelne Anwendung haben, ist es sehr einfach, die Authentifizierung und Autorisierung der Anwendung abzuschließen.

Aber was sollten Sie tun, wenn Sie mehrere Anwendungen haben und denselben Satz von Benutzern und Berechtigungsinformationen wiederverwenden müssen? Sie können Realm wiederverwenden und die Benutzerberechtigungen befinden sich in derselben Datenbank. Dies ist jedoch möglich ist zu hoch und verschiedene Anwendungen müssen auf dieselbe Datenquelle zugreifen. Alternativ kann das DAO für Benutzerberechtigungen entfernt und als RPC- oder Rest-Aufruf verwendet werden. Eine bessere Möglichkeit besteht jedoch darin, die gesamte Authentifizierung zu trennen und Autorisierung als reiner Authentifizierungs- und Autorisierungsdienst

Einheitliche Authentifizierung und Autorisierung basierend auf Shiro

Um eine einheitliche Authentifizierung und Autorisierung zu erreichen, verfügt Shiro über CasFilter, das CAS, aber CAS integrieren kann ist ein weiterer Satz von Frameworks, der wichtiger ist. Es fallen separate Lernkosten an. Daher handelt es sich hier um einen einfacheren, leichten und benutzerfreundlichen Shiro-basierten Authentifizierungs- und Autorisierungsdienst shiro-uaa

Authentifizierung und Autorisierungsprozess

  1. Benutzer fordert geschützte Ressourcen an Ressourcenserver

  2. Ressourcenserver ermittelt, ob der Benutzer angemeldet ist

  3. Wenn der Benutzer nicht angemeldet ist, leitet Resource Server ihn zum UAA-Server weiter, um sich anzumelden.

  4. Der Benutzer meldet sich beim UAA-Server an. Wenn die Anmeldung erfolgreich ist, kehrt der UAA-Server zurück Der Code wird an den Benutzer gesendet und zum zuvor besuchten Ressourcenserver weitergeleitet.

  5. Der Ressourcenserver verwendet Code, um das Zugriffstoken vom UAA-Server abzurufen. Das Token enthält Benutzerautorisierungsinformationen.

  6. Ressourcenserver überprüft, ob das AccessToken legal ist. Wenn es legal ist, speichert es die Benutzerinformationen im Ressourcenserver

Wie unten gezeigt:

Einführung in das Java Permission Framework: Shiros einheitliche Authentifizierung und Autorisierung

Verwenden Sie

  • auth-server

  1. Quote Maven

  2. Implementieren Sie Ihr eigenes Login

  • Ressourcenserver

    1. Quote Maven

    2. Genau wie bei Shiro, verwenden Sie relevante Anmerkungen zur Berechtigungskontrolle

    Grundlegend Kann sofort verwendet werden. Derzeit ist nur der Authentifizierungsserver verfügbar Als JAR-Paket müssen Sie die Anmeldelogik selbst implementieren.

    Shiro-uaa finden Sie in der Projektadresse

    Verwandte Empfehlungen:

    Detaillierte Erläuterung der Shiro-Autorisierungsimplementierung

    Das obige ist der detaillierte Inhalt vonEinführung in das Java Permission Framework: Shiros einheitliche Authentifizierung und Autorisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn