当前位置: 首页 > 知识库问答 >
问题:

Spring security ADFS SSO集成-响应没有任何可以通过主题验证的有效断言

杜霍英
2023-03-14

在使用ADFS执行SSO验证时,我的Spring Boot应用程序有时会显示以下错误。ADFS超时设置为1小时,应用程序超时设置为4小时。来自fiddler trace的响应日志是加密格式的。在spring security完成解密后,有没有方法在日志中打印响应?如何在spring saml与ADFS集成中禁用加密。

在java.base/java.util.concurrent.ThreadPoolExecutor$worker.run(ThreadPoolExecutor.java:628)在org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(Taskthread.java:61)在java.base/java.lang.thread.run(Thread.java:835)原因:org.springframework.security.Authentication.credentialsexpiredexception:身份验证语句太旧,不能与org.springframework.security.saml.websso.websoProfileConsumerImpl.Verifyauthenticationstatement soProfileConsumerImpl.java:574)位于org.springframework.security.saml.websso.websoProfileConsumerImpl.verifyassertion(websoProfileConsumerImpl.java:342)位于org.springframework.security.saml.websso.websoProfileConsumerImpl.processAuthenticationResponse(websoProfileConsumerImpl.java:250)...63常用帧省略2020-10-15 18:02:00,453 INFO org.springframework.security.saml.saml.log.samlDefaultLogger

org.opensaml.common.samlexception%3响应没有任何有效的断言可以通过org.springframework.security.saml.webso.websoprofileconsumerimpl.processauthenticationresponse(websoprofileconsumerimpl.java:265)(org.springframework.security.samlauthenticationprovider.java:88)上的主题验证

此问题非常随机地发生,并迫使关闭所有浏览器或从浏览器中手动删除MSISAuth cookie以显示ADFS登录页面。清除应用程序中的MSISAuth cookie而不给出任何有效结果。

对于ForceAuthN=true,我们没有看到这个错误,但是用户并不乐意每次都登录到应用程序。

共有1个答案

司马德水
2023-03-14

SAML响应失败的原因有很多。在您的特定情况下,它与IDP会话有关。

错误:身份验证语句太旧,不能与值2020-10-27T02:15:21.067Z一起使用,表示会话启动(上次登录)的时间比配置的时间长。

在我看来,你有两种选择:

    null

这就是我在借鉴的方式:

private static final int HOURS_ALLOWED_FROM_PREVIOUS_LOGIN = 720; // 30 Days

@Bean
public WebSSOProfileConsumer webSSOprofileConsumer() {
    WebSSOProfileConsumerImpl profileConsumer = new WebSSOProfileConsumerImpl();
    int secondsFromPreviousLogin = HOURS_ALLOWED_FROM_PREVIOUS_LOGIN * 3600;
    profileConsumer.setMaxAuthenticationAge(secondsFromPreviousLogin);
    profileConsumer.setProcessor(processor());
    return profileConsumer;
}    
 类似资料:
  • 我是javascript新手,我试图创建一个简单的表单验证。当我点击提交按钮时,什么也没发生。我已经看了一段时间的例子,我似乎不知道我哪里出错了。有什么建议吗: 就在这篇文章之后,我要把它分解开来,开始变得更小。但与此同时,我想另一组眼睛不会受伤,很可能我做了什么可怕的错误。 我意识到我只是在上面扔了很多代码,所以提前感谢您筛选它。

  • 问题是,我总是收到一个没有任何有效负载的400响应代码。甚至graphql传递了代码200和带有错误块的有效负载。GraphiQl工作正常,这一事实告诉我设置和模式是正确的。所以…我卡住了。也许,有什么想法,去哪里看看? 我不认为它失败是因为cors本身。我的应用程序在 DRF 下运行良好。我决定尝试新的技术并使用GQL覆盖应用程序。 我的起源:http://127.0.0.1:8080 我的Ap

  • 我需要在放心的Jave中断言Json的响应主体具有所需的参数。 我如何才能做到这一点,而不是仅仅将Json覆盖为字符串,然后断言字符串是否包含文本,因为文本可以在参数的vaule中嗯? 下面是Json示例: 那么我如何断言、和参数都在响应体中。

  • 下面是关于如何设置messenger机器人的Facebook教程-使用ngrok设置我的webhook。本地测试一切顺利,但在向bot发送消息时仍然没有收到任何响应。 韩国https://ngrok.com/ facebook教程https://developers.facebook.com/docs/messenger-platform/getting-started/quick-start/

  • 问题内容: 我不确定这是否存在,所以我想我会借鉴别人的智慧。 我想知道是否有任何Java库可用于验证SQL查询的语法。我知道与常见的SQL规范有许多差异,因此它可能仅适用于SQL:2006之类的东西,但这当然足够了。 我的目标是将其用于单元测试,而无需尝试对数据库执行。我知道它的用途有限,但仍然有用。 谢谢! 问题答案: 我认为没有这样的库。SQL语法派生太多。 可能的解决方案是使用开源纯Java

  • 不能将这些文件重新转换为另一种格式(XLS,CSV),因为整个过程需要自动化,而且其中一些文件有多张表或超过了为XLS文件分配的行数。 我也考虑过编写一个脚本,只使用底层数据“重新创建”excel文件,但这并不理想,因为有些文件需要保留格式。 我可以从Java调用任何语言来读取大型XLSX文件而不会出现内存问题吗?