public static List<OpenIDParameterDTO> getOpenIDAuthRequestAsList(HttpServletRequest request) {
Map parameterMap = null;
Iterator keysIter = null;
List<OpenIDParameterDTO> params = null;
OpenIDParameterDTO param = null;
parameterMap = request.getParameterMap();
keysIter = parameterMap.keySet().iterator();
params = new ArrayList<OpenIDParameterDTO>();
while (keysIter.hasNext()) {
String name = (String) keysIter.next();
Object v = parameterMap.get(name);
String value;
if (v instanceof String[]) {
String[] values = (String[]) v;
if (values.length > 1 && name.startsWith("openid."))
throw new IllegalArgumentException("Multiple parameters with the same name: "
+ values);
value = values.length > 0 ? values[0] : null;
} else if (v instanceof String) {
value = (String) v;
} else {
value = "";
}
param = new OpenIDParameterDTO();
param.setName(name);
param.setValue(value);
params.add(param);
}
return params;
}