[ https://issues.apache.org/jira/browse/WW-4187?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lukasz Lenart updated WW-4187: ------------------------------ Description: The isPathUrl(String url) implementation was changed from: {code:java} return (url.indexOf(':') == -1); {code} to: {code:java} return !url.startsWith("http:") && !url.startsWith("https:") && !url.startsWith("mailto:") && !url.startsWith("file:") && !url.startsWith("ftp:"); {code} This breaks integrations which require a redirect in (e.g.) a mobile app for iOS which often use custom protocols such as myapp:// There are also numerous valid / common protocols which are not in this list. The result of this change is that redirects to such URLs are treated as local redirects (paths), rather than absolute redirects. was: The isPathUrl(String url) implementation was changed from: return (url.indexOf(':') == -1); to: return !url.startsWith("http:") && !url.startsWith("https:") && !url.startsWith("mailto:") && !url.startsWith("file:") && !url.startsWith("ftp:"); This breaks integrations which require a redirect in (e.g.) a mobile app for iOS which often use custom protocols such as myapp:// There are also numerous valid / common protocols which are not in this list. The result of this change is that redirects to such URLs are treated as local redirects (paths), rather than absolute redirects. > ServletRedirectResult only works with a limited set of hardcoded URL protocols > ------------------------------------------------------------------------------ > > Key: WW-4187 > URL: https://issues.apache.org/jira/browse/WW-4187 > Project: Struts 2 > Issue Type: Bug > Affects Versions: 2.3.7, 2.3.8, 2.3.12, 2.3.14, 2.3.14.1, 2.3.14.2, > 2.3.14.3, 2.3.15.1 > Reporter: Michiel Toneman > > The isPathUrl(String url) implementation was changed from: > {code:java} > return (url.indexOf(':') == -1); > {code} > to: > {code:java} > return !url.startsWith("http:") > && !url.startsWith("https:") > && !url.startsWith("mailto:") > && !url.startsWith("file:") > && !url.startsWith("ftp:"); > {code} > This breaks integrations which require a redirect in (e.g.) a mobile app for > iOS which often use custom protocols such as myapp:// > There are also numerous valid / common protocols which are not in this list. > The result of this change is that redirects to such URLs are treated as local > redirects (paths), rather than absolute redirects. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira