====== Unterschiede ====== Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:features:access_rights_management [2009/03/03 13:49] 127.0.0.1 Externe Bearbeitung |
de:features:access_rights_management [2024/09/18 08:32] (aktuell) |
||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
==== Schritt 1: Implementierung der Access-Controller ==== | ==== Schritt 1: Implementierung der Access-Controller ==== | ||
- | Um dieses Feature nutzen zu können, müssen Sie zwei Schnittstellen implementieren: | + | Um dieses Feature nutzen zu können, müssen Sie zwei Klassen erstellen, die je eine der folgenden Schnittstellen implementieren: |
* ''CrawlerAccessController'' aus dem Package ''net.sf.regain.crawler.access''. Es bekommt ein Dokument übergeben und muss in der Lage sein, eine Liste von Gruppen zurückzugeben, die Leserechte für dieses Dokument haben. | * ''CrawlerAccessController'' aus dem Package ''net.sf.regain.crawler.access''. Es bekommt ein Dokument übergeben und muss in der Lage sein, eine Liste von Gruppen zurückzugeben, die Leserechte für dieses Dokument haben. | ||
- | * ''SearchAccessController'' from the package ''net.sf.regain.search.access''. Es bekommt einen Page-Request übergeben und muss in der Lage sein, den Benutzer zu identifizieren, der diesen Request geschickt hat und zu welchen Gruppen er gehört. | + | * ''SearchAccessController'' aus dem Package ''net.sf.regain.search.access''. Es bekommt einen Page-Request übergeben und muss in der Lage sein, den Benutzer zu identifizieren, der diesen Request geschickt hat und zu welchen Gruppen er gehört. |
Ihre Klassen müssen einen Standard-Konstruktor zur Verfügung stellen (einen Konstruktor, der keine Parameter nimmt) und sie sollten in eine .jar-Datei gepackt werden. | Ihre Klassen müssen einen Standard-Konstruktor zur Verfügung stellen (einen Konstruktor, der keine Parameter nimmt) und sie sollten in eine .jar-Datei gepackt werden. | ||
- | Wie Sie den Benutzer identifizieren, der einen Request abgeschickt hat, hängt von Ihrer Web-Applikation ab, in die Sie regain eingebunden haben. Normalerweise müssen Sie dazu prüfen, of es eine gültige Session gibt und zu welchem Benutzer diese gehört. | + | Wie Sie den Benutzer identifizieren, der einen Request abgeschickt hat, hängt von Ihrer Web-Applikation ab, in die Sie regain eingebunden haben. Normalerweise müssen Sie dazu prüfen, ob es eine gültige Session gibt und zu welchem Benutzer diese gehört. |
Wie Sie die Gruppen eines Dokuments oder Benutzers bekommen, hängt von Ihrem Dateisystem ab. Sie müssen also ein Skript oder sonst etwas aufrufen, das Ihnen die Gruppen zurückgibt. | Wie Sie die Gruppen eines Dokuments oder Benutzers bekommen, hängt von Ihrem Dateisystem ab. Sie müssen also ein Skript oder sonst etwas aufrufen, das Ihnen die Gruppen zurückgibt. | ||
+ | |||
==== Schritt 2: Konfigurieren der Access-Controller ==== | ==== Schritt 2: Konfigurieren der Access-Controller ==== | ||
- | Der ''CrawlerAccessController'' wird vom [[Crawler]] genutzt, der ''SearchAccessController'' von der [[Suchmaske]]. | + | Der ''CrawlerAccessController'' wird vom [[:de:components:Crawler]] genutzt, der ''SearchAccessController'' von der [[:de:components:search mask|Suchmaske]]. |
- | Sie sagen dem Crawler, welchen ''CrawlerAccessController'' er nutzen soll, indem Sie ein ''<crawlerAccessController>''-Tag in die [[CrawlerConfiguration.xml]] einfügen. In diesem Tag geben Sie den Namen Ihrer ''CrawlerAccessController''-Klasse an und können sie mit Parametern versorgen. | + | Sie sagen dem Crawler, welchen ''CrawlerAccessController'' er nutzen soll, indem Sie ein ''<crawlerAccessController>''-Tag in die [[:config:CrawlerConfiguration.xml]] einfügen. In diesem Tag geben Sie den Namen Ihrer ''CrawlerAccessController''-Klasse an und können sie mit Parametern versorgen. |
**Beispiel:** | **Beispiel:** | ||
- | <crawlerAccessController> | + | <code xml> |
- | <class jar="myAccess.jar">mypackage.MyCrawlerAccessController</class> | + | <crawlerAccessController> |
- | <config> | + | <class jar="myAccess.jar">mypackage.MyCrawlerAccessController</class> |
- | <param name="scriptPath">c:\regain\access\getDocumentGroups.cmd</param> | + | <config> |
- | </config> | + | <param name="scriptPath">c:\regain\access\getDocumentGroups.cmd</param> |
- | </crawlerAccessController> | + | </config> |
+ | </crawlerAccessController> | ||
+ | </code> | ||
**Wichtig:** Jedes mal, nachdem Sie den ''CrawlerAccessController'' geändert haben oder nachdem sich die Rechte eines Dokuments oder eines Benutzers geändert haben, müssen Sie einen neuen Index erstellen. | **Wichtig:** Jedes mal, nachdem Sie den ''CrawlerAccessController'' geändert haben oder nachdem sich die Rechte eines Dokuments oder eines Benutzers geändert haben, müssen Sie einen neuen Index erstellen. | ||
- | Um der Suchmaske zu sagen, welchen ''SearchAccessController'' sie nutzen soll, müssen Sie ein ''<searchAccessController>''-Tag ihrer [[SearchConfiguration.xml]] angeben. Dieses Tag hat die selbe Struktur wie das des Crawlers. | + | Um der Suchmaske zu sagen, welchen ''SearchAccessController'' sie nutzen soll, müssen Sie ein ''<searchAccessController>''-Tag ihrer [[:config:SearchConfiguration.xml]] angeben. Dieses Tag hat die selbe Struktur wie das des Crawlers. |
**Beispiel:** | **Beispiel:** | ||
- | <searchAccessController> | + | <code xml> |
- | <class jar="myAccess.jar">mypackage.MySearchAccessController</class> | + | <searchAccessController> |
- | <config> | + | <class jar="myAccess.jar">mypackage.MySearchAccessController</class> |
- | <param name="scriptPath">c:\regain\access\getUserGroups.cmd</param> | + | <config> |
- | </config> | + | <param name="scriptPath">c:\regain\access\getUserGroups.cmd</param> |
- | </searchAccessController> | + | </config> |
+ | </searchAccessController> | ||
+ | </code> | ||