我正在为shibboleth idp制作一个插件(在JAVA中)。在插件中,如果用户通过身份验证,我需要获取用户的属性。我使用Filter(pattern / profile / *)来处理请求,但是没有任何用户属性存储在请求的属性或标题中,如果用户通过身份验证,我怎样才能在Java代码中检索用户的属性?
答案 0 :(得分:0)
您必须在应用程序服务器中打开 AJP端口。属性将仅发送到启用AJP的页面。 (您可能希望将attributePrefix="AJP_"
添加到您的配置文件中。)
您需要向代理服务器添加以下内容(考虑到AJP端口在8009上打开)
ProxyPass / profile / * ajp:// localhost:8009 / profile / *
即使这样做,shibboleth参数也不会直接显示在parameters.keySet()
下。但是如果你做parameters.get(key)
那么它将返回shib发送的一些值。
以上行为可能因服务器而异;即,您可能需要parameters.get("AJP_"+key)
获取值。附:检查标题和请求对象。