我在 servlet 中执行下面的代码并得到这个发现错误 - HRS_REQUEST_PARAMETER_TO_HTTP_HEADER 错误:HTTP 参数直接写入 SSOIdpLogoutRedirect.doPost(HttpServletRequest, HttpServletResponse) 中的 HTTP 标头输出
String relayState = request.getParameter("RELAY_STATE");
if(relayState != null)
{
response.sendRedirect(relayState);
}
为了修复这个错误,我在下面添加了代码。
relayState = URLEncoder.encode(relayState,StandardCharsets.UTF_8);
但是 URL 没有以正确的方式重定向,因为我可以看到在对原始 relaystate = https://sad.ezhdj.net/system/web/apps/dfgh/进行编码后,relaystate url 已更改, 并且在编码后它是
中继状态=https%3A%2F%2Fsad.ezdev.net%2Fsystem%2Fweb%2Fapps%2Fdfgh%2F`