Korrektur der Rollenverwaltung in Spring Security
Ihr Problem mit der rollenbasierten Zugriffskontrolle in Spring Security ergibt sich aus der Reihenfolge Ihrer Anfrage-Matcher. Der Matcher für jede Anfrage sollte nach bestimmten rollenbasierten Matchern kommen.
Um dieses Problem zu beheben und den Administratorzugriff einzuschränken, ändern Sie Ihre Konfiguration wie folgt:
@Override protected void configure(HttpSecurity http) throws Exception { http .csrf().disable() .httpBasic() .and() .authorizeRequests() .antMatchers("/users/all").hasRole("admin") .anyRequest().authenticated() // Moved after role-based matcher .and() .formLogin() .and() .exceptionHandling().accessDeniedPage("/403"); }
Mit dieser Konfiguration werden Anfragen an / Benutzer/alle benötigen die Administratorrolle, während für alle anderen Anforderungen ein authentifizierter Benutzer erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie ordne ich Anforderungs-Matcher in Spring Security für die rollenbasierte Zugriffskontrolle richtig an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!