我正在尝试配置Spring SAML以使用多个ACS url。我希望ACS URL是根据用户提供的一些输入来确定的,它将从两个ACS URL中选择一个。
例如:
- 用户在请求中传入值
A
,则ACS URL为http://server1.com/saml/response
。 - 用户在请求中传入值
B
,则SAML响应中的ACS URL将为http://server2.com/saml/response
任何正确方向的想法或指示将不胜感激。
您没有指定使用哪个版本的Spring Security SAML。这是一个基于1.0.10.RELEASE
的例子,可以在这里找到。
这是一种方法:
public class ConfigurableWebSsoProfile extends WebSSOProfileImpl {
@Override
protected AuthnRequest getAuthnRequest(final SAMLMessageContext context,
final WebSSOProfileOptions options,
final AssertionConsumerService acs,
final SingleSignOnService bindingService)
throws SAMLException, MetadataProviderException {
AuthnRequest request = super.getAuthnRequest(context, options,
acs, bindingService);
if (something == true) {
request.setAssertionConsumerServiceURL(...);
} else {
request.setAssertionConsumerServiceURL(...);
}
return request;
}
}