Tenho essa classe, porém descobri um problema que tem me acontecido com ela...
Quando eu uso o .antMatchers("/produtos").hasRole("ADMIN")
essa pagina me redireciona para o login... porem se eu por localhost.../produtos/ da erro 500 falando:
org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: Property 'username' not found on type java.lang.String
ai se eu ponho a /
no final do configure só funciona com a barra... minha solução foi por os 2 /produtos/
e /produtos
tem outro jeito de resolver isso?
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/produtos/form").hasRole("ADMIN")
.antMatchers("/carrinho/**").permitAll()
.antMatchers("/produtos").hasRole("ADMIN")
.antMatchers("/produtos/**").permitAll()
.antMatchers("/resources/**").permitAll()
.antMatchers("/pagamento/**").permitAll()
.antMatchers("/").permitAll()
.anyRequest().authenticated()
.and().formLogin().loginPage("/login")
.defaultSuccessUrl("/produtos").permitAll()
.and().logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.permitAll().logoutSuccessUrl("/login");