che sto cercando di utilizzare l'URL (formica based) corrispondenza con @PreAuthorize ("permitAll") su alcuni controller cioèPrimavera di sicurezza @PreAuthorize sui controller
@Controller
@RequestMapping("/register")
public class RegistrationController {
...
@PreAuthorize("permitAll")
@RequestMapping(method = RequestMethod.GET)
public String register() { ... }
SecurityConfig:
@Configuration
@EnableWebMvcSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http
.authorizeRequests()
.antMatchers("/").permitAll()
.anyRequest().authenticated()
ho anche provato ad aggiungere @EnableGlobalMethodSecurity alla mia MVC config:
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MvcConfig extends WebMvcConfigurerAdapter { ... }
Ma questo non ha alcun effetto
Tuttavia, mi viene comunque richiesto di autenticarsi quando si preme/si registra. Se aggiungo "/ register" agli ant matcher funziona come .antMatchers ("/", "/ register"). AllowAll()
Cosa mi manca qui? Sembra che @PreAuthorize non abbia alcun effetto sui miei controller
Dovrei chiarire che @PreAuthorize ("hasRole ('ADMIN')") su un controller funziona: i non-admins avranno un errore 403. Il problema è in particolare su come sovrascrivere l'ant matcher con l'annotazione @PreAuthorize –