2014-11-26 2 views
5

Ich integriere Spring-Security-Saml-Erweiterung zur Unterstützung von SSO in meiner Web-Anwendung, meine Anwendung sollte verschiedene Kunden erlauben, ihre IDP-Metadaten und ihr Zertifikat zu meiner Webapp hinzuzufügen (das ist ein SP), so dass meine Webanwendung SSO gegen ihre IDP initiieren kann.So fügen Sie neue IDP-Metadaten in Spring-SAML zur Laufzeit hinzu

Im Moment definiere ich eine "Metadaten" -Bohne in meiner Java-Konfiguration, in der ich die Idp-Metadaten zu CachingMetadataManager hinzufüge. Aber das passiert nur einmal, ich bin nicht in der Lage herauszufinden, wie ich dem MetadataManager zur Laufzeit neue idp-Metadaten hinzufügen kann (ohne meine App neu zu starten). Kann ich einfach die Metadaten-Bean von spring ApplicationContext holen und einen neuen Provider hinzufügen? Wird es funktionieren?

Was ist die allgemeine Praxis, um den obigen Anwendungsfall (Hinzufügen neuer IDPs zur Laufzeit) mit Spring-SAML zu unterstützen? Gibt es noch andere Java-Bibliotheken, die dies unterstützen?

Vielen Dank im Voraus

+1

Haben Sie das richtig umgesetzt, wenn ja, wie? – articuno

+0

Könntest du eine Lösung für andere Leute wie dich teilen, die auf dieses Problem stolpern? – theLearner

Antwort

6

Die CachingMetadataManager synchronisiert und Sie können hinzufügen/entfernen MetadataProviders während der Laufzeit durch die Bohne aus dem Anwendungskontext bekommen und addMetadataProvider/removeMetadataProvider aufrufen.

+2

Aber wenn ich dies tue, wird customer1 in der Lage sein, IDPs zu sehen, die von customer2 konfiguriert sind? – articuno

+0

@articuno Haben Sie Glück mit Ihrer Implementierung in Bezug auf customer1 und customer2? wie wirst du es trennen? – sunder

Verwandte Themen