SOAP Schnittstelle
Atlassian Confluence bietet mehrere SOAP Methoden, um Funktionalitäten (wie z.B. das Beziehen von Bereichsinformationen) Remote anzubieten.
Um allerdings eine Methode ausführen zu können, muss eine die login SOAP Methode zuerst verwendet werden. Mit dieser Methode authentifiziert sich der Nutzer am System, wodurch er einen Security Token erhält, den er bei der Verwendungen der anderen SOAP Funktionen als Parameter mitsenden muss. Der Token wird in die Confluence DB abgelegt.
Eine weitere spezielle Methode ist das logout, welches den in der DB abgelegten Token zerstört.
Problembeschreibung
Die Umstellung der Anmeldung von der internen zur externen Authentifizierung führt dazu, dass Atlassian Confluence den SOAP berechtigten Nutzer ebenfalls im Crowd Repository sucht. Sollte allerdings die Anforderung bestehen, dass der Nutzer lediglich ein applikationsspezifischer Systemnutzer sein soll, dann wird dies schnell zu einem Problem, da ein Nutzer, der sich im Crowd Repository befindet, sich zum einen direkt über den jeweiligen Login-Mechanismus (wie z.B. CAS) anmelden kann und zum anderen für allen Applikationen, die das selbe Crowd Repository verwenden, als zulässiger Nutzer existiert.
Lösung
Die Lösung für das Problem findet sich in der atlassian-user.xml.
Das Eintrag für das Hibernate Repository muss einkommentiert werden. Zudem empfehle ich das Crowd Repository an erster Stelle zu definieren. Die Reihenfolge innerhalb dieser Konfigurationsdatein definiert auch die Reihenfolge der späteren Abarbeitung.
Nun fehlt lediglich ein Systemnutzer der in der jeweiligen Confluence DB hinzugefügt werden muss. (Das Vergeben der entsprechenden Berechtigung ist zusätzlich erforderlich. [ggf. Zuweisung zur Gruppe "confluence-users"])
Nach diesen Anpassungen ist es dem Systemnutzern möglich die SOAP Methoden problemlos zu verwenden.