02.02.2014 Aufrufe

Entwurf einer anwendungsunabhängigen Zugriffskontrolle mittels ...

Entwurf einer anwendungsunabhängigen Zugriffskontrolle mittels ...

Entwurf einer anwendungsunabhängigen Zugriffskontrolle mittels ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Implementierung der <strong>Zugriffskontrolle</strong><br />

5.2.2 Zugriff auf die Policies <strong>mittels</strong> XPath<br />

Auf die Datenbank kann über mehrere Schnittstellen zugegriffen werden (vgl. [Mei03]<br />

Abschnitt „Server Deployment“). Unterstützt werden zum einen XPath Anfragen via<br />

http und XML-RPC sowie direkte Zugriffe von Java aus über die XML:DB API. Um<br />

effiziente XPath-Anfragen zu ermöglichen, nutzt eXist Index-Strukturen. Der<br />

bevorzugte Weg, um eXist von Java Anwendung aus anzusprechen, ist jedoch die<br />

Nutzung der XML:DB API. Diese stellt eine vereinheitlichte Schnittstelle für den<br />

Zugriff auf XML Datenbanken dar. Die Basiskonzepte der XML:DB API sind Treiber<br />

(engl. driver), Kollektionen (engl. collections), Ressourcen (engl. resources) und<br />

Dienste (engl. services). Der Treiber für eXist umfasst die für ihn spezifische<br />

Datenbankzugriffslogik. Eine Kollektion ist ein Container, der Ressourcen oder weitere<br />

Subkollektionen enthält. Als Ressourcen werden im Augenblick nur XML-Ressourcen<br />

unterstützt. Dienste schließlich können angefragt werden, um spezielle Aufgaben wie<br />

XPath-Anfragen oder Benutzermanagement zu erfüllen.<br />

XPath (vgl. [GaW02]) ist eine Sprache für die Adressierung von XML Strukturen, die<br />

von mehreren anderen XML Standards wie XSLT, XPointer oder XQuery vewendet<br />

wird. Mit ihr lassen sich Such-Ausdrücke definieren, die in <strong>einer</strong> Art Pfad-Beschreibung<br />

festlegen, welche Elemente eines XML Dokumentes benötigt werden. Zum Beispiel<br />

repräsentiert der vorwärtsgerichtete Slash (/) eine einfachen XPath Ausdruck, mit dem<br />

man den Wurzelknoten eines XML Dokumentes erhält.<br />

In eXist ist eine XPath Dienst eingebaut, der zwar noch nicht den vollen Sprachumfang<br />

von XPath unterstützt, mit dem sich aber die wichtigsten Ausdrücke darstellen lassen<br />

(vgl. [Mei03] Abschnitt „XPath HowTo“). Um die XML-Datenbank zu durchsuchen,<br />

kann man diesen Dienst nutzen, indem man „service.query()“ aufruft<br />

und eine XPath-Query definiert. Die Methode gibt ein ResourceSet zurück, was <strong>einer</strong><br />

Menge an gefundenen XML-Ressourcen entspricht.<br />

Der Zugriff auf die XML-Datenbank ist in der Klasse „SecurityPortal“ gekapselt. Diese<br />

enthält beispielsweise folgende Funktion zum Zugriff auf alle Elemente beliebiger<br />

XML-Dokumente, die der angegebenen Suchanfrage entsprechen.<br />

57

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!