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

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

Aug 09, 2018 pm 05:07 PM
java shiro 认证授权

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!

    Erklärung dieser Website
    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

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    AI Hentai Generator

    AI Hentai Generator

    Erstellen Sie kostenlos Ai Hentai.

    Heißer Artikel

    R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
    2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    Repo: Wie man Teamkollegen wiederbelebt
    1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Quadratwurzel in Java Quadratwurzel in Java Aug 30, 2024 pm 04:26 PM

    Leitfaden zur Quadratwurzel in Java. Hier diskutieren wir anhand eines Beispiels und seiner Code-Implementierung, wie Quadratwurzel in Java funktioniert.

    Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

    Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

    Zufallszahlengenerator in Java Zufallszahlengenerator in Java Aug 30, 2024 pm 04:27 PM

    Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

    Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

    Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

    Armstrong-Zahl in Java Armstrong-Zahl in Java Aug 30, 2024 pm 04:26 PM

    Leitfaden zur Armstrong-Zahl in Java. Hier besprechen wir eine Einführung in die Armstrong-Zahl in Java zusammen mit einem Teil des Codes.

    Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

    Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

    Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

    In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

    Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

    Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

    See all articles