cxf git commit: Allow setting a relative path for the metadata services
Repository: cxf Updated Branches: refs/heads/master da352523c - f76371ed2 Allow setting a relative path for the metadata services Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/f76371ed Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/f76371ed Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/f76371ed Branch: refs/heads/master Commit: f76371ed2b975b6c7151fae9cdbd5674e1431c6c Parents: da35252 Author: Colm O hEigeartaigh cohei...@apache.org Authored: Thu Apr 16 16:27:21 2015 +0100 Committer: Colm O hEigeartaigh cohei...@apache.org Committed: Thu Apr 16 16:27:21 2015 +0100 -- .../rs/security/saml/sso/MetadataService.java | 21 +--- 1 file changed, 18 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cxf/blob/f76371ed/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/MetadataService.java -- diff --git a/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/MetadataService.java b/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/MetadataService.java index fc7a424..266518b 100644 --- a/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/MetadataService.java +++ b/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/MetadataService.java @@ -18,6 +18,7 @@ */ package org.apache.cxf.rs.security.saml.sso; +import java.net.URI; import java.security.PrivateKey; import java.security.cert.X509Certificate; import java.util.ResourceBundle; @@ -30,10 +31,11 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import org.w3c.dom.Document; - import org.apache.cxf.common.i18n.BundleUtils; import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.jaxrs.utils.ExceptionUtils; +import org.apache.cxf.jaxrs.utils.JAXRSUtils; +import org.apache.cxf.message.Message; import org.apache.wss4j.common.crypto.Crypto; import org.apache.wss4j.common.crypto.CryptoType; import org.apache.wss4j.common.ext.WSPasswordCallback; @@ -45,6 +47,7 @@ public class MetadataService extends AbstractSSOSpHandler { private String serviceAddress; private String logoutServiceAddress; +private boolean addEndpointAddressToContext; @GET @Produces(text/xml) @@ -85,8 +88,18 @@ public class MetadataService extends AbstractSSOSpHandler { // Get the private key PrivateKey privateKey = crypto.getPrivateKey(signatureUser, password); -return metadataWriter.getMetaData(serviceAddress, logoutServiceAddress, privateKey, issuerCerts[0], +if (addEndpointAddressToContext) { +Message message = JAXRSUtils.getCurrentMessage(); +String httpBasePath = (String)message.get(http.base.path); +String rawPath = URI.create(httpBasePath).getRawPath(); +return metadataWriter.getMetaData(rawPath + serviceAddress, + rawPath + logoutServiceAddress, + privateKey, issuerCerts[0], + true); +} else { +return metadataWriter.getMetaData(serviceAddress, logoutServiceAddress, privateKey, issuerCerts[0], true); +} } catch (Exception ex) { LOG.log(Level.FINE, ex.getMessage(), ex); throw ExceptionUtils.toInternalServerErrorException(ex, null); @@ -116,5 +129,7 @@ public class MetadataService extends AbstractSSOSpHandler { this.logoutServiceAddress = logoutServiceAddress; } - +public void setAddEndpointAddressToContext(boolean add) { +addEndpointAddressToContext = add; +} }
cxf git commit: Allow setting a relative path for the metadata services
Repository: cxf Updated Branches: refs/heads/3.0.x-fixes 3ed213519 - 4146fe4d8 Allow setting a relative path for the metadata services Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/4146fe4d Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/4146fe4d Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/4146fe4d Branch: refs/heads/3.0.x-fixes Commit: 4146fe4d811506f7d6d09832ccdbefc765b28902 Parents: 3ed2135 Author: Colm O hEigeartaigh cohei...@apache.org Authored: Thu Apr 16 16:27:21 2015 +0100 Committer: Colm O hEigeartaigh cohei...@apache.org Committed: Thu Apr 16 16:28:22 2015 +0100 -- .../rs/security/saml/sso/MetadataService.java | 21 +--- 1 file changed, 18 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cxf/blob/4146fe4d/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/MetadataService.java -- diff --git a/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/MetadataService.java b/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/MetadataService.java index fc7a424..266518b 100644 --- a/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/MetadataService.java +++ b/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/MetadataService.java @@ -18,6 +18,7 @@ */ package org.apache.cxf.rs.security.saml.sso; +import java.net.URI; import java.security.PrivateKey; import java.security.cert.X509Certificate; import java.util.ResourceBundle; @@ -30,10 +31,11 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import org.w3c.dom.Document; - import org.apache.cxf.common.i18n.BundleUtils; import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.jaxrs.utils.ExceptionUtils; +import org.apache.cxf.jaxrs.utils.JAXRSUtils; +import org.apache.cxf.message.Message; import org.apache.wss4j.common.crypto.Crypto; import org.apache.wss4j.common.crypto.CryptoType; import org.apache.wss4j.common.ext.WSPasswordCallback; @@ -45,6 +47,7 @@ public class MetadataService extends AbstractSSOSpHandler { private String serviceAddress; private String logoutServiceAddress; +private boolean addEndpointAddressToContext; @GET @Produces(text/xml) @@ -85,8 +88,18 @@ public class MetadataService extends AbstractSSOSpHandler { // Get the private key PrivateKey privateKey = crypto.getPrivateKey(signatureUser, password); -return metadataWriter.getMetaData(serviceAddress, logoutServiceAddress, privateKey, issuerCerts[0], +if (addEndpointAddressToContext) { +Message message = JAXRSUtils.getCurrentMessage(); +String httpBasePath = (String)message.get(http.base.path); +String rawPath = URI.create(httpBasePath).getRawPath(); +return metadataWriter.getMetaData(rawPath + serviceAddress, + rawPath + logoutServiceAddress, + privateKey, issuerCerts[0], + true); +} else { +return metadataWriter.getMetaData(serviceAddress, logoutServiceAddress, privateKey, issuerCerts[0], true); +} } catch (Exception ex) { LOG.log(Level.FINE, ex.getMessage(), ex); throw ExceptionUtils.toInternalServerErrorException(ex, null); @@ -116,5 +129,7 @@ public class MetadataService extends AbstractSSOSpHandler { this.logoutServiceAddress = logoutServiceAddress; } - +public void setAddEndpointAddressToContext(boolean add) { +addEndpointAddressToContext = add; +} }