我们的系统是与Siteminder交互的网关,用于身份验证和连接到后端系统。 Siteminder在标题中返回SMSESSION和SMIDENTITY。如何从SMSESSION中检索用户标识。格式如下: SMSESSION = dQtTYNjolqkVPoblyV2iUYzlaffxweO7jwHdbC8R8HCRzyuR2E6we22hBEdfOquw4Wx4V2Ly6tuTq7DctZXBpiUVOqYr1htSKExdDauUYD0Eh + jmdw9yBSSjkUm / nlDd6iFizN2zeyBAGda7jgHbyvKCB0T54ZrFFEMTd1jdJfiOJS0q6c
我试图手动取出编码的字符串并对其进行解码,但它没有让我获得用户ID。如何从SMSESSION获取用户标识?
谢谢,
答案 0 :(得分:3)
可以在默认的SiteMinder标题“SM_USER”
中找到用户ID答案 1 :(得分:3)
我认为代理加密了SMSESSION cookie,你将无法用它做很多事情。您必须与外部SiteMinder支持团队合作,要求他们添加SM_USER或其他标头。它是SiteMinder配置的一部分。
答案 2 :(得分:0)
您可以从response.getHeaderNames()获取SM_USER,在index.jsp中使用以下脚本:
<script language="JavaScript" type="text/javascript">
<%
java.util.Enumeration names = request.getHeaderNames();
String SM_USER = "";
while(names.hasMoreElements())
{
String name = (String)names.nextElement();
if(name.contains("SM_USER"))
{
SM_USER = request.getHeader("SM_USER");
}
}
%>
var SM_USER = '<%= SM_USER %>';
</script>
然后您可以从window.SM_USER
访问SM_USER值