Skip to content

spring security pitfalls

Andre Winkler edited this page Mar 28, 2020 · 9 revisions

Spring Security

Zunächst ein paar Konzepte, Stichwörter im Zusammenhang mit Spring-Security. Hier geht es vor allem um Spring-Security im Web Umfeld.

Eine beispielhafte Umsetzung findet sich hier GitHub/Spring-Boot-Demo

Zentrale Begriffe:

  • Authentifizierung (authentication): Login (User/Password). Hier in dem Beispiel erhält der Client nach erfolgreichem Login ein sogenanntes JWT (Jason-Web-Token). Dieses Token verwendet der Client in weiteren Anfragen zur Identifizierung an den (Web-)Server.
  • Autorisierung (authorization): Prüfung, ob Anwender die passende Berechtigung für den Zugriff auf eine Resource besitzt.
  • Servlet-Filter: Ein Konzept aus der Servlet API. Ein Filter entspricht vom Konzept her einem Proxy aus der objektorientierten Welt. Jede Server-Anfrage wird von einem Filter begutachtet. Dieser Filter kann z.B. Header-Parameter, Cookies oder andere HTTP-Request Informationen auslesen. Ggf. eine Anfrage beantworten oder umleiten. Hier sind zwei spezielle Filter interessant: Authentication- und Authorization-Filter.

Workflow:

  • Der Browser führt das Login durch.
  • Der Browser erhält ein JWT. Dieses Token wird bei jeder Übertragung an den Server als Header Parameter mitgegeben.
  • Falls das Token abgelaufen oder ungültig ist, wird man auf '/login' geschickt.

Zu Klären:

  • spring-security-jwt
  • Autorisierung abgelaufen? Empfohlenes Redirect auf '/login'.
  • Zusammenspiel mit OAuth?
  • Wie sieht das mit einer Single Page Application aus?
  • Beispiel für oben: Angular IO und pure Javascript?
  • Google Login / Facebook Login mit OAuth?
  • Login und Refresh Token.

Links

Clone this wiki locally