Heim  >  Artikel  >  Java  >  Neue requestMatcher in Spring Security 6

Neue requestMatcher in Spring Security 6

WBOY
WBOYOriginal
2024-07-19 12:18:31706Durchsuche

New requestMatchers in Spring Security 6

In Spring Security 6 haben die requestMatchers-Methoden die veralteten antMatchers-, mvcMatchers- und regexMatchers-Methoden zum Konfigurieren der pfadbasierten Zugriffskontrolle ersetzt. Hier sind die wichtigsten Punkte zu den neuen requestMatchers:

Verwenden Sie requestMatchers inauthorizeHttpRequests

Mit der Methode „authorizeHttpRequests“ in der HttpSecurity-Konfiguration können Sie einen fein abgestimmten Anforderungsabgleich für die Zugriffskontrolle konfigurieren. Mit der Methode requestMatchers können Sie angeben, welche Anfragen zugelassen oder authentifiziert werden sollen. Zum Beispiel:

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    return http.authorizeHttpRequests(auth -> auth
        .requestMatchers("/greet").permitAll()
        .anyRequest().authenticated())
        .formLogin()
        .build();
}

Diese Konfiguration ermöglicht den Zugriff auf den /greet-Endpunkt ohne Authentifizierung, während für alle anderen Anfragen eine Authentifizierung erforderlich ist.

requestMatchers vs securityMatchers

Es gibt zwei ähnliche Methoden: requestMatchers und securityMatchers. Beide wählen die am besten geeignete RequestMatcher-Implementierung basierend auf dem Vorhandensein von Spring MVC im Klassenpfad:

  • Wenn Spring MVC vorhanden ist, verwendet es MvcRequestMatcher
  • Wenn Spring MVC nicht vorhanden ist, greift es auf AntPathRequestMatcher zurück

Der Hauptunterschied besteht darin, dass securityMatchers an Orten wie WebSecurityCustomizer verwendet wird, während requestMatchers in AuthorizeHttpRequests verwendet wird.

Den richtigen Matcher auswählen

Mit den requestMatchers-Methoden können Sie Anfragen anhand von Mustern oder anderen Kriterien abgleichen, ohne sich auf bestimmte Matcher wie AntPathRequestMatcher oder RegexRequestMatcher verlassen zu müssen. Dies bietet mehr Flexibilität und bessere Standardeinstellungen.

Um einen bestimmten Matcher zu verwenden, können Sie eine RequestMatcher-Implementierung an die requestMatchers-Methode übergeben:

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    return http.authorizeHttpRequests(auth -> auth
        .requestMatchers(new AntPathRequestMatcher("/greet")).permitAll()
        .anyRequest().authenticated())
        .formLogin()
        .build();
}

Zusammenfassend lässt sich sagen, dass die neuen requestMatchers-Methoden in Spring Security 6 eine flexiblere und sicherere Möglichkeit bieten, die pfadbasierte Zugriffskontrolle zu konfigurieren und die am besten geeignete RequestMatcher-Implementierung basierend auf den Abhängigkeiten der Anwendung auszuwählen.

Das obige ist der detaillierte Inhalt vonNeue requestMatcher in Spring Security 6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Körperlose Schleifen in JavaNächster Artikel:Körperlose Schleifen in Java