2012-11-12 16 views
6

Yaylı güvenlik ile bir web uygulamasının hem URL'lerde hem de yöntemlerde erişimi sınırlamak için yapılandırılmış olması. Tamamen varsayılan olarak devre dışı bırakmak istiyorum ve eğer isterlerse müşterilerimin kolayca açmasına izin vermek istiyorum (yalnızca spring-security.xml dosyasına erişebilirler). Yayılma yöntemini güvenlik 3.0.x sürümünde devre dışı bırak

Ben URL durdurma kapatmak başardı ama benim yöntem güvenlik hala etkindir

...

Herhangi ipucu?

(Müşteri nedenle, maalesef "küresel-yöntem-güvenlik" her zaman ayarını bir seçenek değildir değiştirerek, benim web.xml değiştirmelerine izin istemiyoruz ...)

Bu benim güncellenmiş olan yay security.xml konfigürasyonu: Bu gibi DelegatingFilterProxy.doFilter yöntemi overriden olan

<http auto-config='true' use-expressions="true"> 
    <intercept-url pattern="/**" access="permitAll" /> 
    <http-basic /> 
    <anonymous /> 
</http> 

:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) 
      throws ServletException, IOException { 
    final String springSecured = System.getProperty("springSecured"); 

    if (StringUtils.isNotBlank(springSecured) && springSecured.equalsIgnoreCase("true")) { 
     // Call the delegate 
     super.doFilter(request, response, filterChain); 
    } else { 
     // Ignore the DelegatingProxyFilter delegate 
     filterChain.doFilter(request, response); 
    } 
} 

ve bu sahip yöntem bir güvenlik örneğidir:

@RequestMapping(
     value = "applications/{applicationName}/timeout/{timeout}", 
     method = RequestMethod.POST) 
public 
@ResponseBody 
@PreAuthorize("isFullyAuthenticated() and hasPermission(#authGroups, 'deploy')") 
Object deployApplication() { 
    // ... 
} 

cevap

4

Yerinde olsaydım, özel bir filtre zinciri uygulaması kullanmazdım, yalnızca kutunun dışında.

<beans profile="secure"> 
    <http auto-config='true' use-expressions="true">...</http> 
</beans> 

Başvurunuz varsayılan profilinde şimdi korumasız olduğunu (ve diğer fakat "güvenli: etkinleştirebilir ve iç içe öğelerle (Bahar 3,0 beri) fasulye yapılandırmasının bölümleri devre dışı bırakabilir, böylece böyle bir şey uygun olabilir " profil). Güvenli bir profili spring.profiles.active = güvenli bir sistem özelliği sağlayarak veya bir bağlam veya sunucu başlatıcısı içinde açıkça belirleyerek etkinleştirebilirsiniz.

İlgili konular