4

我们的系统是一个与 Siteminder 交互的网关,用于身份验证和连接到后端系统。Siteminder 在标头中返回 SMSESSION 和 SMIDENTITY。如何从 SMSESSION 中检索用户 ID。The format is as below: SMSESSION=dQtTYNjolqkVPoblyV2iUYzlaffxweO7jwHdbC8R8HCRzyuR2E6we22hBEdfOquw4Wx4V2Ly6tuTq7DctZXBpiUVOqYr1htSKExdDauUYD0Eh+jmdw9yBSSjkUm/nlDd6iFizN2zeyBAGda7jgHbyvKCB0T54ZrFFEMTd1jdJfiOJS0q6c

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

谢谢,

4

3 回答 3

6

我相信 SMSESSION cookie 是由代理加密的,你将无能为力。您必须与外部 SiteMinder 支持团队合作,要求他们添加 SM_USER 或其他标头。它是 SiteMinder 配置的一部分。

于 2013-01-03T15:22:32.267 回答
4

用户 ID 可以在标有“SM_USER”的默认 SiteMinder 标头中找到

于 2012-12-07T13:21:04.367 回答
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 值

于 2013-08-18T03:43:38.820 回答