Closed vladimir-mencl-eresearch closed 11 years ago
Additonal information: in upstream commit logs, the line has been modified in commits 2062, 2050:
------------------------------------------------------------------------
r2062 | rdw | 2008-01-28 14:03:42 +1300 (Mon, 28 Jan 2008) | 1 line
SDSJ-15 - use the a non deprecated URLEncoder
------------------------------------------------------------------------
...
------------------------------------------------------------------------
r2050 | rdw | 2007-12-28 04:12:09 +1300 (Fri, 28 Dec 2007) | 1 line
SDSJ-7 encode the parameters to the inine hyperlinks
------------------------------------------------------------------------
The parameter got renamed to returnIDParam in 2050:
--- wayf.jsp (revision 2049)
+++ wayf.jsp (revision 2050)
@@ -140,17 +140,23 @@
simulating the user having specified a permanent cookie -->
</logic:present>
-
<logic:iterate id="site" name="cookieList">
<p class="text">
<logic:present name="entityID" scope="request">
- <a href="<bean:write name="requestURL" />?entityID=<bean:write name="entityID" />&return=<bean:write name="returnX" />&returnIDParam=<bean:write name="returnIDParam" />&cache=perm&action=selection&origin=<jsp:getProperty name="site" property="name" />">
- <jsp:getProperty name="site"
- property="displayName" />
+
+ <bean:define id="returnIDParam" name="returnIDParam"/>
+ <bean:define id="ei" name="entityID" />
+ <bean:define id="re" name="returnX"/>
+
+ <a href="<bean:write name="requestURL" />?entityID=<%= java.net.URLEncoder.encode(ei.toString()) %>&return=<%= java.net.URLEncoder.encode(re.toString()) %>&returnIDxParam=<%= java.net.URLEncoder.encode( returnIDParam.toString() ) %>&cache=perm&action=selection&origin=<jsp:getProperty name="site" property="name" />">
+ <jsp:getProperty name="site" property="displayName" />
</a>
</logic:present>
<logic:notPresent name="entityID" scope="request">
- <a href="<bean:write name="requestURL" />?target=<bean:write name="target" />&shire=<bean:write name="shire" />&providerId=<bean:write name="providerId" />&time=<bean:write name="time" />&cache=perm&action=selection&origin=<jsp:getProperty name="site" property="name" />">
+ <bean:define id="targ" name="target" />
+ <bean:define id="shire" name="shire" />
+ <bean:define id="pid" name="providerId" />
+ <a href="<bean:write name="requestURL" />?target=<%= java.net.URLEncoder.encode(targ.toString()) %>&shire=<%= java.net.URLEncoder.encode(shire.toString()) %>&providerId=<%= java.net.URLEncoder.encode(pid.toString()) %>&time=<bean:write name="time" />&cache=perm&action=selection&origin=<jsp:getProperty name="site" property="name" />">
<jsp:getProperty name="site"
property="displayName" />
</a>
The discussion at https://issues.shibboleth.net/jira/browse/SDSJ-7 only talks about URLencoding all of the parameters, not about renaming it. So might have been a leftover typo or troubleshooting attempt.
Now reported upstream as https://issues.shibboleth.net/jira/browse/SDSJ-115
Fixed by 69cb22a
Wait with closing until we deploy into production...
Deployed in production, closing.
The Discovery protocol allows an SP to specify the desired name of the parameter that would receive the entityId of the selected IdP.
The paramater name can be specified in the returnIDParam parameter; if not specified, the name defaults to entityID.
The Tuakiri DS works all fine when selecting an IdP from the list, but breaks when the IdP is selected from the recent history.
This appears to be because the code in wayf.jsp "masks" the returnIDParam parameter as returnIDxParam in
Manually changing the link works - but we need to first identify why the parameter is being renamed.