从Siteminder smsession中检索用户ID

时间:2012-12-06 22:06:28

标签: userid siteminder

我们的系统是与Siteminder交互的网关,用于身份验证和连接到后端系统。 Siteminder在标题中返回SMSESSION和SMIDENTITY。如何从SMSESSION中检索用户标识。格式如下: SMSESSION = dQtTYNjolqkVPoblyV2iUYzlaffxweO7jwHdbC8R8HCRzyuR2E6we22hBEdfOquw4Wx4V2Ly6tuTq7DctZXBpiUVOqYr1htSKExdDauUYD0Eh + jmdw9yBSSjkUm / nlDd6iFizN2zeyBAGda7jgHbyvKCB0T54ZrFFEMTd1jdJfiOJS0q6c

我试图手动取出编码的字符串并对其进行解码,但它没有让我获得用户ID。如何从SMSESSION获取用户标识?

谢谢,

3 个答案:

答案 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值