Ich entwickle eine REST-API mit Spring 4. Ich möchte einige der Endpunkte mit Spring Security sichern, aber basierend auf dem, was ich gelesen habe, kann dies entweder mit @EnableGlobalMethodSecurity
oder @EnableWebSecurity
getan werden. Leider, die Dokumentation, die ich für diese gefunden habe, erklären nicht klar, was sie tun (oder wie sie vergleichen). Wenn ich eine Spring-REST-API mit Authentifizierung und Autorisierung basierend auf Daten und Beziehungen, die in einer relationalen Standarddatenbank deklariert sind, sichern möchte, was ist die empfohlene Methode, um dies in Spring 4 zu erreichen?@EnableGlobalMethodSecurity vs @EnableWebSecurity
Antwort
EnableWebSecurity
Konfiguration über HttpSecurity Bereitstellung der Konfiguration zur Verfügung stellen werden Sie mit <http></http>
-Tag im XML-Konfiguration finden könnte, dann ist es können Sie Ihren Zugang zu konfigurieren, basierend auf Urls Muster, die Authentifizierungs-Endpunkte, Handler etc ...
EnableGlobalMethodSecurity
bietet AOP Sicherheit auf Methoden, einige der Annotation wird es ermöglichen PreAuthorize
PostAuthorize
auch es hat Unterstützung für JSR-250. There is also more parameters in configuration for you
Für Ihre Bedürfnisse ist es besser, die beiden zu mischen. Mit REST können Sie alles, was Sie brauchen, nur mit @EnableWebSecurity
erreichen, da HttpSecurity#antMatchers(HttpMethod,String...)
Steuerelemente über HTTP-Methoden akzeptiert
- 1. Spring Cloud & Spring OAuth2 - EnableGlobalMethodSecurity löst AlreadyBuiltException
- 2. Klasse vs Paket vs Modul vs Komponente vs Container vs Service vs Plattform in Java Welt
- 3. Opa vs Dart vs Haxe vs Coffee
- 4. Akkumulieren vs falten vs reduzieren vs komprimieren
- 5. body.scrollTop vs documentElement.scrollTop vs window.pagYOffset vs window.scrollY
- 6. ACE vs Boost vs Poco vs wxWidgets
- 7. Inline vs __inline vs __inline__ vs __forceinline?
- 8. Metaphon vs Levenshtein vs Soundex vs Hamming
- 9. Standort vs GeoPoint vs 1E6 vs Aufladen
- 10. VS 2013 MSTest vs nUnit vs xUnit
- 11. Exec vs ExecWait vs ExecShell vs nsExec :: Exec vs nsExec :: ExecToLog vs nsExec :: ExecToStack vs ExecDos vs ExeCmd
- 12. SpiderMonkey vs JavaScriptCore vs?
- 13. & vs * und | vs +
- 14. Bundler vs RVM vs Gems vs RubyGems vs Gemsets vs System Ruby
- 15. Mathematica: Unevaluated vs Aufschieben vs Halten vs Holdform vs HoldAllComplete vs etc etc
- 16. ScheduledExecutorService vs Timer vs Handler
- 17. HttpRequest vs HttpRequestMessage vs HttpRequestBase
- 18. pycuda vs theano vs pylearn2
- 19. Entfernungsabtastung vs Einzelscan vs Überspringungssuche
- 20. Htmlentities vs addslashes vs mysqli_real_escape_string
- 21. Xamarin vs Mono vs Monodevelop
- 22. Ansichtsfenster vs Fenster Vs Dokument
- 23. Redis vs Memcahced vs Hazelcast
- 24. java.lang.Void vs void vs Null
- 25. import vs __import __() vs importlib.import_module()?
- 26. QueryPerformanceCounter() vs QueryInterruptTime() vs KeQueryInterruptTime()
- 27. apc_define_constants vs hidef vs definieren
- 28. Zeiger vs auto_ptr vs shared_ptr
- 29. ASSERT vs. ATLASSERT vs. assert
- 30. Int vs NSNumber vs NSInteger
Können Sie leicht auf den letzten Absatz erweitern? Was ist mit meinen Bedürfnissen macht es besser, die beiden zu mischen? – Christopher
Sie können URL-Muster verwenden, um Entscheidungen darüber zu treffen, ob eine Ressource eine Autorisierung benötigt oder nicht, die 'GlobalMethodSecurity' gibt an, welche Aktion ein bestimmter Benutzer innerhalb der Methode ausführen kann, z. ein Benutzername John ist berechtigt, auf '/ foo/maria' zuzugreifen, aber dann fängt '@ PreAuthorize' das ab, da es einen SpEL hat, der besagt, dass der Name des Benutzers gleich dem Namen der Pfadvariablen sein muss. Wenn Sie nur eine bestimmte URL autorisieren möchten oder nicht, bietet 'EnableWebSecurity' alles, was Sie benötigen –