[java-identity-provider COMMIT] in /trunk/idp-profile-spring/src: main/java/net/shibboleth/idp/profile/spring/relying...

noreply at shibboleth.net noreply at shibboleth.net
Wed Feb 11 17:15:57 EST 2015


Author: putmanb
Date: Wed Feb 11 17:15:57 2015
New Revision: 7336

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7336&view=rev
Log:
Checkpoint work on HTTPS TLS TrustEngines - IdP config parsers.

Added:
    trunk/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/https-trustEngine.xml   (with props)
Modified:
    trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractDynamicHTTPMetadataProviderParser.java
    trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/HTTPMetadataProviderParser.java
    trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/HttpClientFactoryBean.java
    trunk/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/HTTPMetadataProviderParserTest.java

Modified: trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractDynamicHTTPMetadataProviderParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractDynamicHTTPMetadataProviderParser.java?rev=7336&r1=7335&r2=7336&view=diff
==============================================================================
--- trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractDynamicHTTPMetadataProviderParser.java (original)
+++ trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractDynamicHTTPMetadataProviderParser.java Wed Feb 11 17:15:57 2015
@@ -19,10 +19,17 @@
 
 import java.util.List;
 
+import javax.xml.namespace.QName;
+
+import net.shibboleth.idp.profile.spring.relyingparty.security.SecurityNamespaceHandler;
+import net.shibboleth.utilities.java.support.httpclient.HttpClientSupport;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.utilities.java.support.xml.ElementSupport;
 import net.shibboleth.utilities.java.support.xml.XMLConstants;
 
 import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.conn.ssl.StrictHostnameVerifier;
+import org.opensaml.security.httpclient.impl.TrustEngineTLSSocketFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.config.BeanDefinition;
@@ -38,6 +45,10 @@
  */
 public abstract class AbstractDynamicHTTPMetadataProviderParser extends AbstractDynamicMetadataProviderParser {
     
+    /** TLSTrustEngine element name. */
+    public static final QName TLS_TRUST_ENGINE_ELEMENT_NAME = 
+            new QName(MetadataNamespaceHandler.NAMESPACE, "TLSTrustEngine");
+    
     /** BASIC auth username. */
     private static final String BASIC_AUTH_USER = "basicAuthUser";
 
@@ -55,6 +66,18 @@
     @Override protected void doNativeParse(Element element, ParserContext parserContext, 
             BeanDefinitionBuilder builder) {
         super.doNativeParse(element, parserContext, builder);
+        
+        boolean haveTLSTrustEngine = false;
+        if (element.hasAttributeNS(null, "tlsTrustEngineRef")) {
+            builder.addPropertyReference("tlsTrustEngine", element.getAttributeNS(null, "tlsTrustEngineRef"));
+            haveTLSTrustEngine = true;
+        } else {
+            BeanDefinition tlsTrustEngine = parseTLSTrustEngine(element, parserContext);
+            if (tlsTrustEngine != null) {
+                builder.addPropertyValue("tlsTrustEngine", tlsTrustEngine);
+                haveTLSTrustEngine = true;
+            }
+        }
 
         if (element.hasAttributeNS(null, "httpClientRef")) {
             builder.addConstructorArgReference(element.getAttributeNS(null, "httpClientRef"));
@@ -67,7 +90,7 @@
                         + "disregardTLSCertificate, proxyHost, proxyPort, proxyUser and proxyPassword");
             }
         } else {
-            builder.addConstructorArgValue(buildHttpClient(element, parserContext));
+            builder.addConstructorArgValue(buildHttpClient(element, parserContext, haveTLSTrustEngine));
         }
         
         if (element.hasAttributeNS(null, "credentialsProviderRef")) {
@@ -96,11 +119,12 @@
      * 
      * @param element the HTTPMetadataProvider parser.
      * @param parserContext thee context
+     * @param haveTLSTrustEngine whether have a TLS TrustEngine configured
      * @return the bean definition with the parameters.
      */
     // Checkstyle: CyclomaticComplexity OFF
     // Checkstyle: MethodLength OFF
-    private BeanDefinition buildHttpClient(Element element, ParserContext parserContext) {
+    private BeanDefinition buildHttpClient(Element element, ParserContext parserContext, boolean haveTLSTrustEngine) {
         String caching = DEFAULT_CACHING;
         if (element.hasAttributeNS(null, "httpCaching")) {
             caching = element.getAttributeNS(null, "httpCaching");
@@ -148,6 +172,12 @@
         if (element.hasAttributeNS(null, "requestTimeout")) {

[... 232 lines stripped ...]


More information about the commits mailing list