SSO-struts2 weblogic12c saml的sessionContext.getCallerPrincipal().getName()为null

SSO-struts2 weblogic12c saml的sessionContext.getCallerPrincipal().getName()为null,struts2,single-sign-on,ejb-3.0,saml,weblogic12c,Struts2,Single Sign On,Ejb 3.0,Saml,Weblogic12c,我正在将基于struts2+ejb3+Weblogic 12.2.1+JAAS表单的web应用程序迁移到基于SSO SAML的web应用程序。 对于基于表单的身份验证,我实现了javax.security.auth.spi.LoginModule LoginModule。多年来,它一直运作良好 现在,为了迁移,我删除了登录页面中基于表单的j_安全检查和相关内容。 我使用的不是基于表单的用户名和密码,而是iframe,在iframe中,用户名和密码被发布到基于Web的SSO应用程序中,以及我收到的

我正在将基于struts2+ejb3+Weblogic 12.2.1+JAAS表单的web应用程序迁移到基于SSO SAML的web应用程序。 对于基于表单的身份验证,我实现了javax.security.auth.spi.LoginModule LoginModule。多年来,它一直运作良好

现在,为了迁移,我删除了登录页面中基于表单的j_安全检查和相关内容。 我使用的不是基于表单的用户名和密码,而是iframe,在iframe中,用户名和密码被发布到基于Web的SSO应用程序中,以及我收到的对动作类的响应。 SSO身份验证正在顺利进行,我也能够从idp获得角色。 现在,由于我使用的是基于sso的身份验证,所以request.getUserPrincipal()始终为null。 也在我的EJB会话上下文中。getCallerPrincipal().getName()我得到

<anonymous>


在完成SSO身份验证并从IDP获得响应后,我是否必须设置我的主体。

您是如何获得角色的?您可以发布代码吗?IDP正在将角色作为java对象返回。