Index: src/main/java/com/xpn/xwiki/user/impl/xwiki/XWikiAuthServiceImpl.java =================================================================== --- src/main/java/com/xpn/xwiki/user/impl/xwiki/XWikiAuthServiceImpl.java (revision 17694) +++ src/main/java/com/xpn/xwiki/user/impl/xwiki/XWikiAuthServiceImpl.java (working copy) @@ -45,6 +45,7 @@ import com.xpn.xwiki.plugin.ldap.LDAPPlugin; import com.xpn.xwiki.user.api.XWikiAuthService; import com.xpn.xwiki.user.api.XWikiUser; +import com.xpn.xwiki.util.Util; public class XWikiAuthServiceImpl extends AbstractXWikiAuthService { @@ -160,9 +161,9 @@ MyFilterConfig fconfig = new MyFilterConfig(); if (xwiki.Param("xwiki.authentication.loginsubmitpage") != null) { - fconfig.setInitParameter("loginSubmitPattern", xwiki.Param("xwiki.authentication.loginsubmitpage")); + fconfig.setInitParameter(FormAuthenticator.LOGIN_SUBMIT_PATTERN_KEY, xwiki.Param("xwiki.authentication.loginsubmitpage")); } else { - fconfig.setInitParameter("loginSubmitPattern", "/loginsubmit/XWiki/XWikiLogin"); + fconfig.setInitParameter(FormAuthenticator.LOGIN_SUBMIT_PATTERN_KEY, "/loginsubmit/XWiki/XWikiLogin"); } this.authenticator.init(fconfig, sconfig); @@ -569,6 +570,6 @@ if (contextPath.endsWith("/") && !contextPath.startsWith("/")) { contextPath = "/" + StringUtils.chop(contextPath); } - return StringUtils.removeStart(context.getURLFactory().getURL(url, context), contextPath); + return StringUtils.removeStart(context.getURLFactory().getURL(url, context), Util.escapeURL(contextPath)); } }