我正在使用SAML2.0并与Okta集成。我试着使用在okta网站上给出的春季安全示例,它工作得很好。现在我试图将我的web应用程序添加到okat,当我在okta仪表板中启动或单击我的web应用程序时,我想看看什么SAML断言被发送到服务提供商。我想在我的web应用的index.jsp页面上读取用户的姓和名。
我看到tomcat日志中打印了如下响应:
INFO org.opensaml.common.binding.security.SAMLProtocolMessageXMLSignatureSecurityPolicyRule -协议消息签名验证成功,消息类型:{urn:oasis:names:tc:SAML:2.0:protocol}响应
但是当我试图在index.jsp中获得SecurityContextHolder.getContext(). getauthentication()对象时,我得到null。
在Okta中创建用户并分配给应用程序。但是这个用户在我的web应用程序数据库中不存在。所有我想看到的是在Okta创建的用户被发送到我的web应用程序。我只是想读元数据像名字,姓氏等。这可能吗?有人试过吗?
我的web应用程序已经使用CasAuthentication。
我找到了自己问题的答案。在这里发布给可能面临类似问题的同行。
基本上,如果您使用多个身份验证管理器,请确保您的别名不同,并且您在"ref"部分中引用了saml bean中的正确别名。修改后,我的就开始正常工作了。