2017-11-03 1 views
4

Ich Frühling Web-Sicherheit verwenden, mit dem folgenden Code, der alle Seiten außer diejenigen, die als Ressourcen und app.htmlFrühling Web-Sicherheit beschränken nur einzelne Seite

aufgelistet so schränkt Wie kann ich dies zu ändern lassen alle Seiten außer denen, die ich speziell spezifiziere?

@Configuration 
@EnableWebSecurity 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 
    @Autowired 
    private UserDetailsService userDetailsService; 

    @Bean 
    public BCryptPasswordEncoder bCryptPasswordEncoder() { 
     return new BCryptPasswordEncoder(); 
    } 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http .authorizeRequests() 
       .antMatchers("/resources/**", "/registration", "/app.html").permitAll() 
       .anyRequest().authenticated() 
       .and() 
       .formLogin() 
       .loginPage("/login") 
       .permitAll() 
       .and() 
       .logout() 
       .permitAll(); 
    } 

    @Autowired 
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
     auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder()); 
    } 
} 

bekam ich den Code von hier: https://spring.io/blog/2013/07/03/spring-security-java-config-preview-web-security/ aber ich konnte keine Antwort auf meine Frage sehen.

Dank

Antwort

0

Dies wird Ihre mysupersecureurl und lassen Sie die andere URL geöffnet sein (das heißt permitAll()) schützen.

Auch als Bonus können Sie csrf deaktivieren, wenn Sie Beiträge zu anderen URLs als die auf der mysupersecureurl tun. Das ist eine Option, die Sie behalten oder entfernen können.

0

mit anyRequest().permitAll() Versuchen Sie, alle Seiten/apis

und antMatchers("/api/yourAPI").authenticated()

(oder antMatchers("/api/yourAPI").hasAuthority(AuthoritiesConstants.ADMIN) für einen bestimmten Benutzer (admin hier)), damit Ihre Seiten zu beschränken

@Configuration 
@EnableWebSecurity 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 
    @Autowired 
    private UserDetailsService userDetailsService; 

    @Bean 
    public BCryptPasswordEncoder bCryptPasswordEncoder() { 
     return new BCryptPasswordEncoder(); 
    } 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http .authorizeRequests() 
       .anyRequest().permitAll() 
       .antMatchers("/resources/**", "/registration", "/app.html").permitAll() 
       .antMatchers("/api/yourAPI").authenticated() 
       // or .antMatchers("/api/yourAPI").hasAuthority(AuthoritiesConstants.ADMIN) 
       .and() 
       .formLogin() 
       .loginPage("/login") 
       .permitAll() 
       .and() 
       .logout() 
       .permitAll(); 
    } 

    @Autowired 
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
     auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder()); 
    } 
} 
Verwandte Themen