2017-12-11 3 views
-1

Ich versuche Spring Security für sichere Route/admin zu konfigurieren (Zugriff nur für ADMIN-Rolle zulassen), aber ich möchte alle anderen Routen ohne Hardcode alle Routen in meiner Konfigurationsdatei zulassen.Wie "Spring Security" für sichere/admin URL zu konfigurieren, aber alle anderen URL zulassen?

It`s my Frühling Sicherheitsprogramm Konfiguration:

http. 
     authorizeRequests() 
      .mvcMatchers("/", "/login", "/registration", "/news/**").permitAll() 
      .mvcMatchers("/admin/**").hasAuthority("ADMIN").anyRequest().authenticated() 
     .and() 
      .csrf().disable() 
      .formLogin() 
       .loginPage("/login") 
       .failureUrl("/login?error=true") 
      .defaultSuccessUrl("/admin/news/") 
      .usernameParameter("username") 
      .passwordParameter("password") 
     .and() 
      .logout() 
       .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) 
       .logoutSuccessUrl("/") 
     .and() 
      .exceptionHandling() 
      .accessDeniedPage("/access-denied"); 

Wie kann ich alle Routen erlauben und nur/admin Route und Kind sicher?

Wenn ich diese Zeile Config

.mvcMatchers("/**").permitAll()

meine/admin Route wurde ungesichert und ich konnte es öffnen, ohne Login

.mvcMatchers("/", "/login", "/registration", "/news/**").permitAll()

zu

geändert. Wie geht das?

Antwort

-1

Sie sollten nur die Reihenfolge der mvcMatchers ändern

http 
.authorizeRequests().mvcMatchers("/admin/**").hasAuthority("ADMIN").anyRequest() 
.authenticated().mvcMatchers("/**").permitAll() 

danach, wenn Sie Anfrage senden an „admin/~“ dann Anmeldeformular und im anderen Fall erscheint, werden alle Anfrage passieren

+0

Nachdem ich die Reihenfolge geändert und ein Problem mit vielen Weiterleitungen behoben habe Alle meine Links umleiten auf das Login-Formular. –

Verwandte Themen