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 />

1. public abstract aspect AbstractAuthorizationAspect{<br />

2. …<br />

3. public abstract pointcut Initialization();<br />

4. after(): Initialization() { // Read configuration<br />

5. configuration = Configuration.getInstance();<br />

6.<br />

7. configuration.startService(„PolicyService“);<br />

8. configuration.startService(„ObjectService“);<br />

9. configuration.startService(„ActionService“);<br />

10. }<br />

11. …<br />

12.}<br />

13.<br />

Abbildung 28: Pointcut „Initialization“ (eigene Darstellung)<br />

Ein weiterer wichtiger Pointcut ist “SecuredObjectConstructors”. Dieser wird ausgelöst,<br />

wenn ein Objekt <strong>einer</strong> Klasse, die „SecuredClasses“ implementiert, erzeugt wird.<br />

Nachdem das Objekt erzeugt wurde, wird der Advice „after():<br />

SecuredObjectsConstructor“ ausgeführt, der diesem ein PolicySet entsprechend der<br />

Vorgaben der Konfigurationsdatei „ObjectConfiguration.xml“ zuweist.<br />

1. public abstract aspect AbstractAuthorizationAspect{<br />

2. …<br />

3. public abstract pointcut SecuredObjectsConstructors()<br />

4. …<br />

5. after() returning: SecuredObjectsConstructors(){<br />

6. if(isSecuredClass(thisJoinPointStaticPart.<br />

getSignature().getDeclaringType().getName() ));<br />

7. {<br />

8. …<br />

9. inialize.invoke(authService, new Object[]{userId,<br />

thisObject});<br />

10. …<br />

11. } …<br />

12.}<br />

Abbildung 29: Pointcut „SecuredObjectConstructors“ (eigene Darstellung)<br />

5.2 Implementierung der Policy-basierten <strong>Zugriffskontrolle</strong><br />

5.2.1 Speicherung von Policy Dateien in der XML Datenbank eXist<br />

Zur Speicherung der Zugriffsrechte und der Konfigurationsdateien wird die Open-<br />

Source-XML Datenbank eXist (vgl. [Mei03]) verwendet. Aus Effizienzgründen<br />

speichert eXist XML Dateien nicht in einem relationalen Datenspeicher, sondern in<br />

einem eigenen XML Datenspeicher (siehe Abbildung). Eine Schnittstelle zu<br />

relationalen Datenbanken ist aber auch vorhanden. Ähnlich wie die Speicherung von<br />

Dateien in Ordnerstrukturen, werden XML Dokumente in hierarchischen Kollektionen<br />

54

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!