2017-10-20 1 views
2

Ich las den vorherigen Post in Bezug auf eine Lösung zum Deaktivieren von @EnableGlobalMethodSecurity, aber es funktioniert nicht für mich. Grundsätzlich muss ich meine @ PreAuthorize-Annotationen beim Start zu Testzwecken aktivieren/deaktivieren. Hier ist mein entsprechender Code:Deaktivieren Sie @EnableGlobalMethodSecurity zum Testen

@Configuration 
@EnableGlobalMethodSecurity 
public class OpenAMMethodSecurityConfig extends GlobalMethodSecurityConfiguration { 

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

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

Während die Code-Methode Sicherheit deaktivieren, wird es nicht wieder aktivieren, wenn der „freigegeben“ Flag auf true gesetzt ist und es sei denn, die Anmerkung enthält ... (prePostEnabled = true) . Bei der Untersuchung des Codes wird PrePostEnabled nach der Ausführung von customMethodSecurityMetadataSource() wahrscheinlich auf "true" gesetzt.

Bitte raten ...

Antwort

0

Sie können eine Test Eigenschaft verwenden, um die Einstellungen zu deaktivieren, auf das, was Sie haben ...

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