[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