2016-07-12 8 views
1

Ich habe Benutzer in meinem db und jeder Benutzer hat IP-Adresse. Ich muss nur Benutzern Zugriff gewähren, deren IP-Adresse in meiner Datenbank existiert. Benutzer haben kein Login und Passwort. Sie haben Telefonnummer, ID, Details und IP-Adresse. Wenn der Benutzer eine Webseite öffnet, stelle ich seine IP-Adresse fest, lasse ihn in db laufen und gebe Zugriff oder verweigere den Zugriff. Wenn der Zugriff erfolgreich ist, muss ich diesen Benutzer in der Sitzung speichern.Frühling Sicherheit Authentifizierung nur ein Feld (IP-Adresse des Benutzers)

Kann ich die Federsicherung dafür verwenden?

Als ich versuchte Frühling Sicherheit verwenden sah ich, dass Login und Passwort dafür brauchen. Aber mein Benutzer hat kein Login und Passwort.

Antwort

0

Sie können, aber ich bin mir nicht sicher, ob Sie sollten.

Erstens ist die Verwendung von IP-basierter Authentifizierung für häufige Anwendungsfälle eine sehr schlechte Sicherheitsvorkehrung: Nur ein Element und jeder Administrator eines einzelnen Computers im Netzwerk kann seine IP-Adresse ändern und so tun, als sei er jemand anderes.

Angenommen, Sie haben einen echten Grund, dies zu tun, kann Spring Security leicht dazu. Sie müssen einen benutzerdefinierten Authentifizierungsverarbeitungsfilter einrichten, der die IP-Adresse verwendet, um eine gültige Authentication zu erstellen. Sie könnte von AbstractAuthenticationProcessingFilter oder AbstractPreAuthenticatedProcessingFilter stammen.

Der Filter könnte die schwere Aufgabe übernehmen und direkt ein vollständig authentifiziertes Authentifizierungstoken in die SecurityContext setzen, die von den statischen Methoden der SecurityContextHolder Klasse erhalten wurde. Aber die Spring Security Weg wäre nur eine WebAuthenticationDetails in einem benutzerdefinierten Authentication Token setzen, übergeben Sie es an die und lassen Sie eine benutzerdefinierte AuthenticationProvider baut die vollständig authentifizierte Authentication.