Spring Security, la anotación de seguridad del método (@Secured) no funciona (configuración de Java)

Estoy tratando de configurar un método de anotación de seguridad usando @Secured ("ADMIN") (sin ningún XML, solo la configuración de Java, Spring Boot). Pero el acceso a través de roles no funciona.

Configuración de seguridad:

@Configuration
@EnableWebSecurity
public class AppSecurityConfiguration extends WebSecurityConfigurerAdapter{

.....

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .antMatchers("/api/**").fullyAuthenticated().and()
                .addFilterBefore(tokenAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
    }

.....

}

Quiero restringir el acceso al método del controlador:

@RestController
@RequestMapping("/api/groups")
public class GroupController {

    @Autowired
    private GroupService groupService;

    @Secured("ADMIN")
    @RequestMapping
    public List<Group> list() {
        return groupService.findAll();
    }

}

Restringir el acceso por la url está funcionando, con:

.antMatchers("/api/**").hasAuthority("ADMIN")

¿Tal vez olvidé especificar que quiero restringir por roles?

UPD: Según las reglas, en qué capa debe estar@PreAuthorize("hasRole('ADMIN')") en la capa del controlador o en la capa de servicio?

Respuestas a la pregunta(7)

Su respuesta a la pregunta