我正在尝试将Shibboleth身份验证与我继承维护的旧Struts-1应用程序集成,但我无法弄清楚如何使用Shibboleth属性。
这就是我的尝试:
public final class AuthenticateAction extends MappingDispatchAction {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Enumeration attributeNames = request.getAttributeNames();
while (attributeNames.hasMoreElements()) {
String attributeNm = (String) attributeNames.nextElement();
System.out.println("DEBUG: " + attributeNm);
}
String eppn = (String) request.getAttribute("eppn"); // <-- Null
在循环遍历上面代码中的属性名称时,没有打印出我期望的Shibboleth属性。
如何访问Shibboleth属性?
答案 0 :(得分:0)
事实证明,在我的情况下,这是服务器端配置的问题。
按照此处的说明操作后:https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPJavaInstall,我能够将这些属性简单地理解为:
String eppn = (String) request.getAttribute("eppn"); // <-- no longer null