2017-10-20 54 views
2

J'ai lu le post précédent concernant une solution pour désactiver @EnableGlobalMethodSecurity, mais cela ne fonctionne pas pour moi. Fondamentalement, je dois activer/désactiver mes annotations @PreAuthorize au démarrage à des fins de test. Voici mon code correspondant:Désactiver @EnableGlobalMethodSecurity pour tester

@Configuration 
@EnableGlobalMethodSecurity 
public class OpenAMMethodSecurityConfig extends GlobalMethodSecurityConfiguration { 

... 
    @Value("${security.enabled}") 
    private boolean enabled; 
... 

    protected MethodSecurityMetadataSource customMethodSecurityMetadataSource() { 
     return enabled ? new SecuredAnnotationSecurityMetadataSource() : null; 
    }   

Alors que le code désactive la sécurité de la méthode, il ne sera pas si le réactivez « activé » drapeau est défini sur true et à moins que l'annotation contient ... (prePostEnabled = true) . En recherchant le code, je pense que le paramètre prePostEnabled est défini sur true à la suite de l'exécution de customMethodSecurityMetadataSource().

S'il vous plaît conseiller ...

Répondre

0

Vous pouvez utiliser une propriété de test pour désactiver les paramètres en fonction de ce que vous avez ...

@TestPropertySource(properties = "security.enabled:false")