Je voulais contrôler l'accès avec les annotations de la méthode Spring Security.
Annoté une classe existante.
MyService.java
@Component
public class MyService {
    @PreAuthorize("hasRole('ROLE_ADMIN')")
    public void someAdminAction() {
        /* ... */
    }
}
J'ai créé une classe de configuration pour activer les annotations.
MethodSecurityConfiguration.java
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MethodSecurityConfiguration {
}
«MyService» injectait dans le contrôleur.
MyController.java
@RestController
public class MyController {
    @Autowired
    private MyService myService;
    /* ... */
}
Je ne peux pas injecter MyService dans MyController!
Quelque chose appelé Type Mismatch! !!
La classe annotée AOPs et devient un proxy, il semble donc que le type a changé (?).
Ajout de l'option proxyTargetClass = true.
MethodSecurityConfiguration.java
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true, proxyTargetClass = true)
public class MethodSecurityConfiguration {
}
        Recommended Posts