


Apache Shiro-Benutzerhandbuch (1) Einführung in die Shiro-Architektur
Apache Shiro-Benutzerhandbuch (1) Einführung in die Shiro-Architektur
1. Was ist Shiro
Apache Shiro ist ein leistungsstarkes und benutzerfreundliches Java-Sicherheitsframework, das Authentifizierung und Autorisierung bietet , Verschlüsselung und Sitzungsverwaltung und andere Funktionen:
Authentifizierung – Benutzeridentifikation, oft als „Benutzeranmeldung“ bezeichnet;
Passwortverschlüsselung – Schutz oder Verstecken von Daten vor neugierigen Blicken Sitzungsverwaltung – Zeitkritischer Status, der jedem Benutzer zugeordnet ist.
Für jede Anwendung kann Shiro umfassende Sicherheitsmanagementdienste anbieten. Und im Vergleich zu anderen Sicherheits-Frameworks ist Shiro viel einfacher.
2. Einführung in die Architektur von Shiro
Werfen wir zunächst einen Blick auf die drei Kernkomponenten von Shiro: Subject, SecurityManager und Realms:
Betreff: der „aktuelle Betriebsbenutzer“. In Shiro bezieht sich der Begriff „Subjekt“ jedoch nicht nur auf Personen, sondern kann auch Prozesse von Drittanbietern, Hintergrundkonten (Daemon-Konten) oder ähnliche Dinge umfassen. Es bedeutet einfach „womit die Software gerade interagiert“. Aber für die meisten Zwecke und Verwendungszwecke kann man es sich als Shiros „Benutzer“-Konzept vorstellen.
Betreff stellt die Sicherheitsvorgänge des aktuellen Benutzers dar und SecurityManager verwaltet die Sicherheitsvorgänge aller Benutzer.
SecurityManager: Es ist der Kern des Shiro-Frameworks, ein typischer Fassadenmodus, der interne Komponenteninstanzen über SecurityManager verwaltet und darüber verschiedene Dienste für das Sicherheitsmanagement bereitstellt.
Realm: Realm fungiert als „Brücke“ oder „Verbindungsstück“ zwischen Shiro und Anwendungssicherheitsdaten. Das heißt, wenn Shiro die Authentifizierung (Anmeldung) und Autorisierung (Zugriffskontrolle) für einen Benutzer durchführt, sucht Shiro nach dem Benutzer und seinen Berechtigungsinformationen im in der Anwendung konfigurierten Bereich.
In diesem Sinne ist Realm im Wesentlichen ein sicherheitsbezogenes DAO: Es kapselt die Verbindungsdetails der Datenquelle und stellt Shiro bei Bedarf relevante Daten zur Verfügung. Bei der Konfiguration von Shiro müssen Sie mindestens einen Realm für die Authentifizierung und/oder Autorisierung angeben. Es ist möglich, mehrere Realms zu konfigurieren, es ist jedoch mindestens einer erforderlich.
Shiro verfügt über einen integrierten Realm, der eine Verbindung zu einer großen Anzahl sicherer Datenquellen (auch als Verzeichnisse bekannt) herstellen kann, wie z. B. LDAP, relationale Datenbanken (JDBC), INI-ähnliche Textkonfigurationsressourcen und Eigenschaftendateien. usw. Wenn der Standard-Realm Ihren Anforderungen nicht entspricht, können Sie auch Ihre eigene Realm-Implementierung einbinden, die eine benutzerdefinierte Datenquelle darstellt.
Shiro vollständiges Architekturdiagramm:
Zusätzlich zu den drei oben genannten Kernkomponenten Subject, SecurityManager und Realm umfassen Shiros Hauptkomponenten auch:
Authentifikator: Bei der Authentifizierung handelt es sich um den Prozess der Überprüfung der Benutzeridentität. Ein häufiges Beispiel für diesen Vorgang ist die bekannte Kombination „Benutzer/Passwort“. Wenn sich die meisten Benutzer bei einem Softwaresystem anmelden, geben sie normalerweise ihren Benutzernamen (den Prinzipal) und das zugehörige Passwort (das Zertifikat) an. Wenn das im System gespeicherte Passwort (oder die Passwortdarstellung) mit dem vom Benutzer angegebenen übereinstimmt, gelten sie als authentifiziert.
Autorisierer: Autorisierung ist im Wesentlichen eine Zugriffskontrolle – sie steuert, auf welche Inhalte in der Anwendung Benutzer zugreifen können, z. B. Ressourcen, Webseiten usw.
SessionManager: In der Welt der Sicherheits-Frameworks bietet Apache Shiro etwas Einzigartiges: die konsistente Nutzung der Session-API auf jeder Anwendungs- oder Architekturebene. Das heißt, Shiro bietet ein Konversationsprogrammierungsparadigma für jede Anwendung – von kleinen eigenständigen Backend-Anwendungen bis hin zu großen geclusterten Webanwendungen. Dies bedeutet, dass Anwendungsentwickler, die Sitzungen verwenden möchten, nicht gezwungen sind, ein Servlet oder einen EJB-Container zu verwenden. Wenn diese Container verwendet werden, können Entwickler jetzt alternativ eine konsistente Sitzungs-API auf jeder Ebene anstelle von Servlet- oder EJB-Mechanismen verwenden.
CacheManager: Bietet Caching-Unterstützung für andere Komponenten von Shiro.
Das Obige ist der Inhalt des Apache Shiro-Benutzerhandbuchs (1) Einführung in die Shiro-Architektur. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php). .cn)!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Laut Benchmarks zeichnet sich Laravel durch Seitenladegeschwindigkeit und Datenbankabfragen aus, während CodeIgniter sich durch Datenverarbeitung auszeichnet. Bei der Auswahl eines PHP-Frameworks sollten Sie die Anwendungsgröße, die Verkehrsmuster und die Fähigkeiten des Entwicklungsteams berücksichtigen.

Parallelitätstests und Debugging Parallelitätstests und Debugging in der gleichzeitigen Java-Programmierung sind von entscheidender Bedeutung und die folgenden Techniken stehen zur Verfügung: Parallelitätstests: Unit-Tests: Isolieren und testen Sie eine einzelne gleichzeitige Aufgabe. Integrationstests: Testen der Interaktion zwischen mehreren gleichzeitigen Aufgaben. Lasttests: Bewerten Sie die Leistung und Skalierbarkeit einer Anwendung unter hoher Last. Parallelitäts-Debugging: Haltepunkte: Thread-Ausführung anhalten und Variablen überprüfen oder Code ausführen. Protokollierung: Thread-Ereignisse und -Status aufzeichnen. Stack-Trace: Identifizieren Sie die Quelle der Ausnahme. Visualisierungstools: Überwachen Sie die Thread-Aktivität und die Ressourcennutzung.

1. Hintergrund des Baus der 58-Portrait-Plattform Zunächst möchte ich Ihnen den Hintergrund des Baus der 58-Portrait-Plattform mitteilen. 1. Das traditionelle Denken der traditionellen Profiling-Plattform reicht nicht mehr aus. Der Aufbau einer Benutzer-Profiling-Plattform basiert auf Data-Warehouse-Modellierungsfunktionen, um Daten aus mehreren Geschäftsbereichen zu integrieren, um genaue Benutzerporträts zu erstellen Und schließlich muss es über Datenplattformfunktionen verfügen, um Benutzerprofildaten effizient zu speichern, abzufragen und zu teilen sowie Profildienste bereitzustellen. Der Hauptunterschied zwischen einer selbst erstellten Business-Profiling-Plattform und einer Middle-Office-Profiling-Plattform besteht darin, dass die selbst erstellte Profiling-Plattform einen einzelnen Geschäftsbereich bedient und bei Bedarf angepasst werden kann. Die Mid-Office-Plattform bedient mehrere Geschäftsbereiche und ist komplex Modellierung und bietet allgemeinere Funktionen. 2.58 Benutzerporträts vom Hintergrund der Porträtkonstruktion im Mittelbahnsteig 58

Um einen Server zu Eclipse hinzuzufügen, führen Sie die folgenden Schritte aus: Erstellen Sie eine Serverlaufzeitumgebung. Konfigurieren Sie den Server. Erstellen Sie eine Serverinstanz. Wählen Sie die Serverlaufzeitumgebung aus. Konfigurieren Sie die Serverinstanz. Starten Sie das Serverbereitstellungsprojekt

Es gibt eine Vielzahl von Angriffsmethoden, die eine Website offline schalten können. Die komplexeren Methoden erfordern technische Kenntnisse in Datenbanken und Programmierung. Eine einfachere Methode wird als „DenialOfService“-Angriff (DOS) bezeichnet. Der Name dieser Angriffsmethode leitet sich von ihrer Absicht ab, normale Serviceanfragen von normalen Kunden oder Website-Besuchern abzulehnen. Im Allgemeinen gibt es zwei Formen von DOS-Angriffen: die dritte und vierte Schicht des OSI-Modells, d. h. den Netzwerkschicht-Angriff. Die siebte Schicht des OSI-Modells, d. h. den Anwendungsschicht-Angriff Angriff – die Netzwerkschicht, tritt auf, wenn eine große Menge Junk-Datenverkehr zum Webserver fließt. Wenn der Spam-Verkehr die Fähigkeit des Netzwerks übersteigt, ihn zu verarbeiten, stürzt die Website ab. Die zweite Art von DOS-Angriff erfolgt auf der Anwendungsebene und nutzt kombinierte Angriffe

Um eine PHP-Website erfolgreich bereitzustellen und zu warten, müssen Sie die folgenden Schritte ausführen: Wählen Sie einen Webserver (z. B. Apache oder Nginx). Installieren Sie PHP. Erstellen Sie eine Datenbank und verbinden Sie PHP. Laden Sie Code auf den Server hoch. Richten Sie den Domänennamen und die DNS-Überwachung der Website-Wartung ein Zu den Schritten gehören die Aktualisierung von PHP und Webservern sowie die Sicherung der Website, die Überwachung von Fehlerprotokollen und die Aktualisierung von Inhalten.

KubernetesOperator vereinfacht die PHP-Cloud-Bereitstellung durch die folgenden Schritte: Installieren Sie PHPOperator, um mit dem Kubernetes-Cluster zu interagieren. Stellen Sie die PHP-Anwendung bereit, deklarieren Sie das Image und den Port. Verwalten Sie die Anwendung mit Befehlen wie dem Abrufen, Beschreiben und Anzeigen von Protokollen.

So implementieren Sie Best Practices für die PHP-Sicherheit PHP ist eine der beliebtesten Backend-Webprogrammiersprachen, die zum Erstellen dynamischer und interaktiver Websites verwendet wird. Allerdings kann PHP-Code verschiedene Sicherheitslücken aufweisen. Um Ihre Webanwendungen vor diesen Bedrohungen zu schützen, ist die Implementierung bewährter Sicherheitspraktiken von entscheidender Bedeutung. Eingabevalidierung Die Eingabevalidierung ist ein wichtiger erster Schritt zur Validierung von Benutzereingaben und zur Verhinderung böswilliger Eingaben wie SQL-Injection. PHP bietet eine Vielzahl von Eingabevalidierungsfunktionen, wie zum Beispiel filter_var() und preg_match(). Beispiel: $username=filter_var($_POST['username'],FILTER_SANIT
