spring-mvc - multiple - spring security websecurityconfigureradapter configure




Wann sollte man Spring Security`s antMatcher() verwenden? (2)

Wann verwenden wir antMatcher() vs antMatchers() ?

Zum Beispiel:

http
   .antMatcher("/high_level_url_A/**")
   .authorizeRequests()
      .antMatchers("/high_level_url_A/sub_level_1").hasRole('USER')
      .antMatchers("/high_level_url_A/sub_level_2").hasRole('USER2')
      .somethingElse()
      .anyRequest().authenticated()
      .and()
   .antMatcher("/high_level_url_B/**")
   .authorizeRequests()
      .antMatchers("/high_level_url_B/sub_level_1").permitAll()
      .antMatchers("/high_level_url_B/sub_level_2").hasRole('USER3')
      .somethingElse()
      .anyRequest().authenticated()
      .and()
   ...

Was ich hier erwarte, ist,

  • Jede Anfrage, die mit /high_level_url_A/** /high_level_url_A/sub_level_1 nur für USER + /high_level_url_A/sub_level_1 und nur für USER2 /high_level_url_A/sub_level_2 authentifiziert werden
  • Jede Anfrage, die mit /high_level_url_B/** sollte authentifiziert werden + /high_level_url_B/sub_level_1 für den öffentlichen Zugriff und /high_level_url_A/sub_level_2 nur für USER3.
  • Irgendein anderes Muster ist mir egal - Aber sollte es öffentlich sein?

Ich habe gesehen, dass die neuesten Beispiele antMatcher() nicht antMatcher() . Warum das? Wird antMatcher() nicht mehr benötigt?


Grundsätzlich http.antMatcher() Spring an, HttpSecurity nur zu konfigurieren, wenn der Pfad mit diesem Muster übereinstimmt.


Ich aktualisiere meine Antwort ...

antMatcher() ist eine Methode von HttpSecurity und hat nichts mit authorizeRequests() zu tun. Grundsätzlich weist http.antMatcher() Spring an, http.antMatcher() nur zu konfigurieren, wenn der Pfad diesem Muster entspricht.

Mit authorizeRequests().antMatchers() wird dann die Autorisierung auf einen oder mehrere Pfade angewendet, die Sie in antMatchers() . permitAll() Beispiel permitAll() oder hasRole('USER3') . Diese werden nur angewendet, wenn das erste http.antMatcher() übereinstimmt.





spring-security4