Fix SwitchUserFilter.setSwitchFailureUrl assertion

Fixes gh-4198
This commit is contained in:
Rob Winch 2017-03-02 00:47:09 -06:00
parent 017e9834bd
commit 247f54dc41
2 changed files with 19 additions and 5 deletions

View File

@ -58,7 +58,6 @@ import org.springframework.security.web.authentication.SimpleUrlAuthenticationSu
import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
import org.springframework.security.web.util.UrlUtils;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.web.filter.GenericFilterBean;
/**
@ -494,10 +493,8 @@ public class SwitchUserFilter extends GenericFilterBean
* @param switchFailureUrl the url to redirect to.
*/
public void setSwitchFailureUrl(String switchFailureUrl) {
Assert.isTrue(
StringUtils.hasText(this.switchUserUrl)
&& UrlUtils.isValidRedirectUrl(switchFailureUrl),
"switchFailureUrl cannot be empty and must be a valid redirect URL");
Assert.isTrue(UrlUtils.isValidRedirectUrl(switchFailureUrl),
"switchFailureUrl must be a valid redirect URL");
this.switchFailureUrl = switchFailureUrl;
}

View File

@ -464,6 +464,23 @@ public class SwitchUserFilterTests {
assertThat(switchAuthorityRole).isEqualTo(switchedFrom.getAuthority());
}
@Test(expected = IllegalArgumentException.class)
public void setSwitchFailureUrlWhenNullThenThrowException() {
SwitchUserFilter filter = new SwitchUserFilter();
filter.setSwitchFailureUrl(null);
}
@Test(expected = IllegalArgumentException.class)
public void setSwitchFailureUrlWhenEmptyThenThrowException() {
SwitchUserFilter filter = new SwitchUserFilter();
filter.setSwitchFailureUrl("");
}
@Test
public void setSwitchFailureUrlWhenValidThenNoException() {
SwitchUserFilter filter = new SwitchUserFilter();
filter.setSwitchFailureUrl("/foo");
}
// ~ Inner Classes
// ==================================================================================================