SORU
17 Temmuz 2011, Pazar


'Bahar noktası ne MVC'In DelegatingFilterProxy?

Benim Bahar bu MVC uygulaması web.xml görüyorum:

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

Bunun nedenini ve gerçekten gerekli olup olmadığını anlamaya çalışıyorum.

this explanation in the Spring docs ama bana mantıklı gelmiyor buldum:

Bu bileşen "tutkal" sunucu uygulamalarına web.xml bileşenleri ve Bahar tanımlı tanımlı applicationContext.xml. arasında olduğunu söylemek mümkün gibi görünüyor

7.1 DelegatingFilterProxy

Sunucu uygulaması filtreleri kullanırken, belli ki Senin onlara bildirmeniz gerekir web.xml, ya da sunucu uygulaması konteyner tarafından göz ardı edilecektir. Bahar Güvenlik, filtre sınıfları da Bahar fasulye uygulama bağlamında ve İlkbahar yararlanmak mümkün zengin bağımlılık-enjeksiyon tesisleri ve yaşam döngüsü arabirimleri böylece tanımlanır. Bahar DelegatingFilterProxy web.xml uygulama ve içerik arasındaki bağlantıyı sağlar.

DelegatingFilterProxy kullanırken, web.xml dosyasında böyle bir şey göreceksiniz:

<filter>
  <filter-name>myFilter</filter-name>
  <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
  <filter-name>myFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

Filtre aslında DelegatingFilterProxy ve aslında filtre mantığı uygulayan bir sınıf değil dikkat edin. DelegatingFilterProxy ne Filtre yöntemlerle Bahar uygulama bağlamında elde edilen bir fasulye için temsilci. Bu Bahar web uygulama kapsamında yaşam döngüsü destek ve yapılandırma esnekliği faydalanmak için fasulye sağlar. Fasulye javax.servlet.Filter uygulamalıdır ve Adı filtre elemanı ile aynı adı olmalıdır. Daha fazla bilgi için Javadoc for DelegatingFilterProxy okuyun

Benim çıkart web.xml, ne olacak? Benim sunucu uygulamalarına Bahar konteyner ile iletişim kurmak mümkün olmaz mı?**

CEVAP
18 Temmuz 2011, PAZARTESİ


Bir çeşit sihir var, ama sonunda, her şey belirli bir programdır.

DelegatingFilterProxyyukarıda açıklandığı gibi, olan bir Filtredelege Filtre uygulayan Bahar tarafından yönetilen bean arayüzü"bir fasulye bulur ("hedef bean" veya "") temsilci Bahar uygulama bağlamında ve çağırır. Bu nasıl mümkün olabilir? Bu fasulye javax uygular çünkü.sunucu uygulaması.Filtre, doFilter yöntemi denir.

Hangi fasulye denir? bu DelegatingFilterProxy """ [ ... ], Bahar uygulama bağlamında hedef bean adını belirten." targetBeanName Destekler

Senin web.xml o gördüğün gibibean adı "springSecurityFilterChain".

Böylece, bir web uygulama kapsamında, bir Filtre bean adlı başlatır "" uygulama kapsamında ve sonra doFilter üzerinden temsilci() yöntemi. springSecurityFilterChain

Unutmayın, uygulama kapsamında UYGULAMA-İÇERİK (XML) TÜM dosyaları ile tanımlanır. Örneğin: applicationContext.xml VE applicationContext-security.xml.

Çok çalışınbir bean olarak adlandırılan"" . springSecurityFilterChain ikincisi...

...vemuhtemelen yapamazsınörneğin eğer bir öğretici takip ederseniz veya güvenlik Roo kullanarak yapılandırılmış ise)

İşte magic:güvenlik yapılandırma için yeni bir unsur vargibi bir şey

<http auto-config="true" use-expressions="true"> 

http://www.springframework.org/schema/security/spring-security-3.0.xsd, hile yapacak da izin veriyor.

Bahar yükler uygulama bağlamı kullanarak XML dosyaları, eğer bulursa bir unsur olacaktır denemek için kurduğu bir HTTP güvenlik, filtre yığını ve korumalı Url ve kaydetmek için FilterChainProxy "adlı springSecurityFilterChain".

Alternatif olarak, klasik şekilde, yani: fasulye tanımlayabilirsiniz

<beans:bean id="springSecurityFilterChain" class="org.springframework.security.web.FilterChainProxy">

Ama yapılandırma (tüm kullanacaksın filtreler. çok ihtiyacınız olduğundan daha az tavsiye edilir, Ve içlerinden bir düzineden fazla)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EatingIn

    EatingIn

    12 EKİM 2013
  • Juan Carlos Candela Bordera

    Juan Carlos

    4 Mart 2009
  • Soulkiller13 ツ

    Soulkiller13

    30 Mayıs 2013