2011-03-16 36 views
6

bahar güvenlik docs durumu (2.3.2): Başvurunuz HTTP ve HTTPS destekler ve belirli URL'ler sadece HTTPS üzerinden ulaşılabilir olmasını gerektirirYay güvenliği: ek açıklamaları kullanarak https zorlama?

, o zaman bu doğrudan desteklendiğini üzerinde özelliğinin kullanılmasını gerektirir-kanalını kullanarak:

<http> 
    <intercept-url pattern="/secure/**" access="ROLE_USER" requires-channel="https"/> 
    <intercept-url pattern="/**" access="ROLE_USER" requires-channel="any"/> 
    ... 
    </http> 

Ama benim denetleyicileri üzerinde ek açıklamalar kullanıyorum, müdahale-uRL değil unsurları.

  • HTTPS'yi ek açıklamalarla seçici olarak uygulayabilir miyim?
  • Güvenli olmayan sayfalar için HTTP'yi zorlayabilir miyim?

cevap

3

Kullanılabilir belgelerden, sadece ek açıklamaları kullanılarak kanal güvenliğini zorlamak mümkün olmayabilir.

+1

Elbette bunu yapmanın tek yolu, ek açıklamaları zayıflattığı görülen intercept-url aracılığıyla olduğu gibi görünüyor (tüm kontrolörlerime not ekledim ve bu noktaya intercept-url kullanmadım, tahmin etmem gerekecek). Onayınızı sunduğunuz için teşekkür ederiz. –

1

güvenli olmayan HTTP zorlayarak Ne demek istediğini anlamıyorum

http://www.jroller.com/habuma/entry/method_level_security_in_spring

spring not enforcing method security annotations

Bahar Security ile ek açıklama nasıl kullanılacağını gösteren örnekler vardır sayfaları. Güvenli değilse, o zaman zaten HTTP'dir.

+0

Bu bağlantılarda özellikle ** yalnızca ** ek açıklamaları kullanarak kullanıcıyı HTTPS'ye zorlama konusunda herhangi bir puan yakalamadım. Ve HTTP ile ilgili olarak, güvenli sayfalardan (hesap sayfaları gibi) normal güvenli olmayan sayfalara (HTTPS trafiğini gereken minimum seviyeye getirmenin bir yolu olarak) geçtiğinde kullanıcıları HTTP'ye düşürmeyi düşünüyordum. –

+0

@David: Sayfaları güvenli bir şekilde güvensiz hale getirmek ve brüt URL ile güvensiz hale getirmek en kolay yoldur (sağa ulaşmak çok daha kolay!) Ve HTTPS'den HTTP'ye geri dönerken güvensizliğe geri dönmek istiyorsanız, 'need- kullanabileceğinizi unutmayın. Bunu yapmak için channel = "http". –