2

在 Apache 上运行 Shibboleth 身份验证以及在后端运行 Tomcat7 时,我遇到了一个奇怪的问题,Apache 通过 mod_proxy_ajp 发送所有内容。Shibboleth 的参数也是如此。

文档中明确指出,AJP 仅发送带前缀attributePrefix="AJP_"的属性,开发人员不应采取捷径并启用通过 HTTP 标头发送身份验证属性:https ://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPSpoofChecking

我尝试使用检索属性

HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance()
                         .getExternalContext().getRequest();

Enumeration<String> e = req.getAttributeNames();

但无论我尝试什么,Shibboleth 属性都不会出现。

4

1 回答 1

4

经过两个小时试图找出我做错了什么。我尝试使用名称按名称检索属性。

req.getAttribute("uid");

出于某种原因,它有效。即使"uid"未在 getAttributeNames(); 中列出

它闻起来像一个错误,或者 AJP 和 Spring 或 JSF 之间某处的错误通信......

于 2013-08-10T16:42:54.340 回答