Author: andreas
Date: Tue Apr 1 05:40:30 2008
New Revision: 643378
URL: http://svn.apache.org/viewvc?rev=643378&view=rev
Log:
Change ShibbolethUtil.getBaseUrl() to getHostUrl(), treat proxy-based and non-proxy URLs the same way.
Modified:
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethAuthenticator.java
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethModule.java
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethUtil.java
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/ShibbolethModule.java
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/impl/ShibbolethModuleImpl.java
Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethAuthenticator.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethAuthenticator.java?rev=643378&r1=643377&r2=643378&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethAuthenticator.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethAuthenticator.java Tue Apr 1 05:40:30 2008
@@ -129,7 +129,7 @@
.lookup(AttributeRequestService.ROLE);
ShibbolethUtil util = new ShibbolethUtil(this.manager);
- String host = util.getBaseUrl();
+ String host = util.getHostUrl();
BrowserProfileResponse bpResponse = consumerService.processRequest(req, host);
Map attributesMap = attrReqService.requestAttributes(bpResponse);
logAttributesMap(attributesMap);
Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethModule.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethModule.java?rev=643378&r1=643377&r2=643378&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethModule.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethModule.java Tue Apr 1 05:40:30 2008
@@ -57,7 +57,7 @@
throws ConfigurationException {
ShibbolethUtil util = new ShibbolethUtil(this.manager);
- String host = util.getBaseUrl();
+ String host = util.getHostUrl();
// attributes to get from the org.apache.shibboleth.ShibbolethModule
String[] shibModuleAttrs = { ATTR_WAYF_SERVER, ATTR_PROVIDER_ID, ATTR_SHIRE };
Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethUtil.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethUtil.java?rev=643378&r1=643377&r2=643378&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethUtil.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethUtil.java Tue Apr 1 05:40:30 2008
@@ -17,6 +17,9 @@
*/
package org.apache.lenya.ac.shibboleth;
+import java.net.MalformedURLException;
+import java.net.URL;
+
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.ServiceSelector;
import org.apache.cocoon.environment.Context;
@@ -49,20 +52,20 @@
/**
* <p>
- * This method computes the base URL of the web application:
+ * This method computes the host URL of the web application (<code>{protocol}://{host}[:{port}]</code>).
+ * The port suffix is omitted for the ports 80 and 443.
* </p>
* <ul>
* <li>
- * If a proxy is declared for the current area, the URL of the proxy is returned.
+ * If a proxy is declared for the current area, the host URL of the proxy is returned.
* </li>
* <li>
- * If no proxy is declared, <code>{protocol}://{host}[:{port}]</code> is returned. The port suffix is omitted
- * for the ports 80 and 443.
+ * If no proxy is declared, the host URL of the current request is returned.
* </li>
* </ul>
* @return A string.
*/
- public String getBaseUrl() {
+ public String getHostUrl() {
String baseUrl = null;
ContextUtility contextUtil = null;
@@ -85,7 +88,10 @@
Proxy proxy = pub.getProxy(area, isSslProtected(webappUrl));
if (proxy != null) {
- baseUrl = proxy.getUrl();
+ String proxyUrl = proxy.getUrl();
+ if (containsAuthority(proxyUrl)) {
+ baseUrl = getHostUrl(proxyUrl);
+ }
}
}
@@ -106,6 +112,34 @@
return baseUrl;
}
+
+ public String getHostUrl(String url) {
+ StringBuffer hostUrl = new StringBuffer();
+ if (!containsAuthority(url)) {
+ throw new IllegalArgumentException("The URL [" + url + "] doesn't contain the authority.");
+ }
+ URL urlObj = toUrl(url);
+ hostUrl.append(urlObj.getProtocol());
+ hostUrl.append("://");
+ hostUrl.append(urlObj.getAuthority());
+ return hostUrl.toString();
+ }
+
+ protected URL toUrl(String urlString) {
+ URL url;
+ try {
+ url = new URL(urlString);
+ } catch (MalformedURLException e) {
+ throw new RuntimeException(e);
+ }
+ return url;
+ }
+
+ protected boolean containsAuthority(String url) {
+ return url.startsWith("http://") || url.startsWith("https://");
+ }
+
+
/**
* @param port The port.
Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/ShibbolethModule.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/ShibbolethModule.java?rev=643378&r1=643377&r2=643378&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/ShibbolethModule.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/ShibbolethModule.java Tue Apr 1 05:40:30 2008
@@ -97,12 +97,10 @@
String getWayfServerUrl();
/**
- * @param baseUrl The URL to append the shire URL to. If the shire URL
- * starts with a slash, only the authority part
- * (protocol://host[:port]) is used.
+ * @param hostUrl The host URL to append the shire URL to.
* @return The shire URL.
*/
- String getShireUrl(String baseUrl);
+ String getShireUrl(String hostUrl);
/**
* @param targetUrl the target URL the user is send to after authentication.
Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/impl/ShibbolethModuleImpl.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/impl/ShibbolethModuleImpl.java?rev=643378&r1=643377&r2=643378&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/impl/ShibbolethModuleImpl.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/shibboleth/impl/ShibbolethModuleImpl.java Tue Apr 1 05:40:30 2008
@@ -364,36 +364,8 @@
return this.wayfServerUrl;
}
- public String getShireUrl(String baseUrl) {
- StringBuffer shireUrl = new StringBuffer();
- if (this.shire.startsWith("/") && containsAuthority(baseUrl)) {
- URL url = toUrl(baseUrl);
- shireUrl.append(url.getProtocol());
- shireUrl.append("://");
- shireUrl.append(url.getAuthority());
- }
- else {
- shireUrl.append(baseUrl);
- if (!baseUrl.endsWith("/")) {
- shireUrl.append("/");
- }
- }
- shireUrl.append(this.shire);
- return shireUrl.toString();
- }
-
- protected URL toUrl(String urlString) {
- URL url;
- try {
- url = new URL(urlString);
- } catch (MalformedURLException e) {
- throw new RuntimeException(e);
- }
- return url;
- }
-
- protected boolean containsAuthority(String url) {
- return url.startsWith("http://") || url.startsWith("https://");
+ public String getShireUrl(String hostUrl) {
+ return hostUrl + this.shire;
}
public String getTargetBaseUrl(String targetUrl){
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.