2016-06-28 5 views
0

Я реализовал поставщик метаданных весны saml, который читает из базы данных и обслуживает как моих поставщиков услуг, так и поставщиков удостоверений. Я также использую псевдонимы, чтобы действовать как идентификаторы арендаторов.Как заставить Spring SAML перечитать мои метаданные IDP?

Моя проблема заключается в том, что если я перейду в базу данных и изменю метаданные для конкретного поставщика удостоверений, чтобы они были разными, это не похоже на эффект, пока я не перезапущу расширение весны saml. Это не зависит от того, жду, когда начнется перезагрузка потока MetadataManager.

Что кэшируется здесь? Могу ли я предотвратить это поведение?

Похоже, что что-то кэшируется в коде проверки сообщений SAML. Если я запустил процесс с недопустимыми метаданными, тогда исправьте метаданные, независимо от того, что произойдет с ошибкой аутентификации: входящее сообщение SAML недействительно.

Любая помощь будет оценена по достоинству.

Edit: Я полагаю, что я нашел место, где это происходит: В MetadataCredentialResolver.java учетные данные кэшируются через вызов cacheCredentials после того, как получающего его от поставщика метаданных.

ответ

1

Я смог решить эту проблему, переопределив MetadataCredentialResolver и сделав cacheCredentials no-op.