Java SAML2.0 RelayState参数:如何在WSO2 IS中向登录表单添加额外字段?
我需要在WSO2 IS中的自定义登录页面中添加一个额外的组合框(其中包含要显示的产品版本)。成功登录后,combox的选择应传递给服务提供商。如上所述,选择可以作为RelayState参数传递。我仍然找不到一个关于如何使用WSO2 IS实现这一点的示例。所以问题是:如何在is端使用RelayState参数进行设置,以及如何在服务提供商端获得其价值?非常感谢java上的任何示例 有两种流动Java SAML2.0 RelayState参数:如何在WSO2 IS中向登录表单添加额外字段?,java,wso2,saml-2.0,wso2is,wso2carbon,Java,Wso2,Saml 2.0,Wso2is,Wso2carbon,我需要在WSO2 IS中的自定义登录页面中添加一个额外的组合框(其中包含要显示的产品版本)。成功登录后,combox的选择应传递给服务提供商。如上所述,选择可以作为RelayState参数传递。我仍然找不到一个关于如何使用WSO2 IS实现这一点的示例。所以问题是:如何在is端使用RelayState参数进行设置,以及如何在服务提供商端获得其价值?非常感谢java上的任何示例 有两种流动 国内流离失所者发起 SP启动 中继状态:是一个参数,可帮助您处理IdP启动的流量。如果在服务提供者端有多
- 国内流离失所者发起
- SP启动
public Object loadUserBySAML(SAMLCredential credential)
throws UsernameNotFoundException {
// The method is supposed to identify local account of user referenced by
// data in the SAML assertion and return UserDetails object describing the user.
String userID = credential.getNameID().getValue();
String relayState = credential.getRelayState();
LOG.info(userID + " is logged in");
return new User(userID, "<abc123>", true, true, true, true, authorities);
}
public Object loadUserBySAML(SAMLCredential凭证)
抛出UsernameNotFoundException{
//该方法用于标识用户引用的本地帐户
//SAML断言中的数据,并返回描述用户的UserDetails对象。
字符串userID=credential.getNameID().getValue();
字符串relayState=credential.getRelayState();
LOG.info(userID+“已登录”);
返回新用户(userID,“,true,true,true,authorities);
}
谢谢您的回答!但我如何才能告诉WSO2是接受登录页面上表单的字段来中继状态参数,还是我如何以任何其他方式将字段值传递给SP?不确定,但您可以使用saml断言xml来实现同样的目的。若您看到,您希望从UI上选择的版本驱动sp登录页。要通过RelayState实现同样的目标,还有很多方法。正如我在IdP中看到的,我可以在上面为多个版本创建多个应用程序。因此,用户可以选择所需的应用程序,并基于IdP处的重新系统状态配置,以使应用程序SP重定向正常工作。我不确定WSO2如何实现这一目标。