我已经实现了一个spring saml元数据提供程序,它从数据库中读取并提供服务提供者和身份提供者。我也在利用别名作为租户标识符。
我的问题是,如果我进入数据库并修改特定身份提供者的元数据是不同的,那么在我重新启动spring saml扩展之前它似乎没有任何效果。这与我是否等待MetadataManager重新加载线程开始无关。
这里有什么缓存?我可以阻止这种行为吗?
看起来SAML消息验证代码中正在缓存某些内容。如果我使用无效元数据启动进程,然后更正元数据,无论身份验证失败了什么:传入SAML消息无效。
任何帮助都将不胜感激。
编辑:我相信我找到了发生这种情况的位置:在MetadataCredentialResolver.java中,凭据从元数据提供程序检索后,通过调用cacheCredentials来缓存凭据。
答案 0 :(得分:1)
我能够通过覆盖MetadataCredentialResolver并使cacheCredentials成为无操作来解决这个问题。