2011-07-18 18 views
7

SSL bağlantılarını sonlandırmak ve yaylı bir uygulama ile uygulama sunucusuna düz HTTP ile bağlanmak için bir F5 BIG-IP aygıtı kullanıyoruz. Ayrıca F5'i bir X-Forwarded-Proto üstbilgisini http veya https değeriyle göndermek için yapılandırdık. servlet containter protokol düzeni HTTPS iseYay Güvenliği: SSL hızlandırıcı arkasında require-channel = "https"

<security:intercept-url pattern="/login.action" requires-channel="https" /> 

Ancak bu yalnızca eser, bu yüzden HTTP başlığı yorumlamak gerekir:

Şimdi bir yolunu kesmek url yapılandırarak HTTPS zorlamak istiyorum.

Bunu nasıl yapacağınıza dair bir fikriniz var mı?

Teşekkür Simon SecureChannelProcessor ve InsecureChannelProcessordecide() basan

cevap

8

alt sınıf. Sen Güvenli için örneğin, bazı kodu kopyalayıp yapıştırmak gerekir:

@Override 
    public void decide(FilterInvocation invocation, Collection<ConfigAttribute> config) throws IOException, ServletException { 
     Assert.isTrue((invocation != null) && (config != null), 
         "Nulls cannot be provided"); 

     for (ConfigAttribute attribute : config) { 
      if (supports(attribute)) { 
       if (invocation.getHttpRequest(). 
         getHeader("X-Forwarded-Proto").equals("http")) { 
        entryPoint.commence(invocation.getRequest(), 
         invocation.getResponse()); 
       } 
      } 
     } 
    } 

Sonra BeanPostProcessor kullanılarak ChannelDecisionManagerImpl fasulye bu ChannelProcessors ayarlayın.

1

Bu soruyu biliyorum/cevap 4 yaşında, ancak problemimi çözmemde bana yardımcı oluyor. Ancak modern Spring Boot uygulamalarında, düzeltme daha kolaydır. Sadece application.yaml aşağıdaki girdiyi ekleyin:

server.tomcat.protocol_header: x-forwarded-proto

burada

Mor bilgi: http://docs.spring.io/spring-boot/docs/current/reference/html/howto-security.html#howto-enable-https

+1

https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/html/howto-embedded-servlet-containers.html Bunu denedim, ama gömülü Tomcat örneği kullanılarak, ve harici bir Tomcat örneği üzerine bir WAR uygulama dağıtımı değilseniz sadece iş gibi görünüyor. –

0

günümüzde bile daha basit: Bulut Döküm ve Heroku için varsayılan olarak etkinleştirilir

server.use-forward-headers: true 

ama için AWS gibi diğerleri.

Belgeler (bölüm 73.7):

İlgili konular