java - 从 AJP 连接器请求中检索 Shibboleth 属性

标签 java apache tomcat7 shibboleth ajp

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

documentation明确指出 AJP 仅发送带有前缀 attributePrefix="AJP_" 的属性,并且开发人员不应走捷径并启用通过 HTTP header 发送身份验证属性:https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPSpoofChecking

我尝试使用检索属性

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

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

但无论我如何尝试,都没有出现任何 Shibboleth 属性。

最佳答案

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

req.getAttribute("uid");

出于某种原因,这是可行的。即使 "uid" 未在 getAttributeNames();

中列出

它闻起来像是一个错误,或者是 AJP 和 Spring 或 JSF 之间的不合时宜的通信......

关于java - 从 AJP 连接器请求中检索 Shibboleth 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18164141/

相关文章:

java - 加密和解密密码

java - 事件派发线程与逻辑线程分离,防止UI阻塞

java - 按钮不会打开新 Activity

java - 为多个域的 Apache Tomcat 部署 WAR 文件

apache - RewriteModule 上的 'SCRIPT_FILENAME' 和 'REQUEST_FILENAME' 有什么区别?

Tomcat:模块版本冲突。模块 [groovy-all 在版本 2.3.7 中加载,而您正在尝试加载版本 2.4.3

java - 当应用程序部署为 war 时,Tomcat 不调用 Controller

java - 在哪里创建音乐播放器服务 w.r.t.媒体浏览器服务兼容

java - 错误 "The matching wildcard is strict, but no declaration can be found for element ' 上下文 :annotation-config'"via tomcat7

java - 尝试在 OfBiz 中保存任务时收到 FK 违规错误