Page created: 24 Jul 2019
|
Page updated: 8 Feb 2022
The Agent Toolkit for Java allows your application to send multi-value attributes to PingFederate. Each attributes appears in its own <AttributeValue> element in the SAML 2.0 assertion.
Using the Agent Toolkit with Apache Commons MultiMap
Multi-value attributes are passed using theorg.apache.commons.collections.map.MultiValueMap
collection.String username = (String)request.getSession().getAttribute("username");
MultiMap userInfo = new MultiValueMap();
userInfo.put(Agent.TOKEN_SUBJECT, username);
// Add an attribute GROUP with multiple values userInfo.put("GROUP", "Administrators");
userInfo.put("GROUP", "Users");
String returnUrl = "https://<PingFederate_DNS>:9031" + request.getParameter("resume");
. . . .
try {
UrlHelper urlHelper = new UrlHelper(returnUrl);
//see "Using the Agent API" section for sample code
//that instantiates and configures an Agent instance
agent.writeToken(userInfo,response,urlHelper,false);
returnUrl = (String)urlHelper.toString();
}
catch(TokenException e) {
// Handle exception
}
Using the PingFederate MultiMap equivalent
String username = (String) request.getSession().getAttribute("username");
PingFederateMultiMap userInfo = new PingFederateMultiMap();
userInfo.put(Agent.TOKEN_SUBJECT, username);
// Add an attribute GROUP with multiple values userInfo.put("GROUP", "Administrators");
userInfo.put("GROUP", "Users");
String returnUrl = "https://<PingFederate_DNS>:9031" + request.getParameter("resume");
. . . .
try
{
UrlHelper urlHelper = new UrlHelper(returnUrl);
//see "Using the Agent API" section for sample code
//that instantiates and configures an Agent instance
agent.writeToken(userInfo, response, urlHelper, false);
returnUrl = (String) urlHelper.toString();
}
catch (TokenException | IOException e)
{
// Handle exception
}