====== Unterschiede ====== Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:howto:desktop_external_access [2009/03/05 20:59] 127.0.0.1 Externe Bearbeitung |
de:howto:desktop_external_access [2024/09/18 08:32] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | = externer http Zugriff auf Desktopsuche = | + | ====== How-To: Zugriff auf Desktopsuche von anderen Rechnern aus ====== |
- | ;das Problem | + | ===== Das Problem ===== |
- | Zugriff auf Desktopsuche ist nur für localhost erlaubt (Security-Feature) | + | |
+ | Der Zugriff auf die Desktopsuche ist in der offiziellen regain-Version aus Sicherheitsgründen nur vom lokalen Rechner aus (''localhost'') erlaubt. | ||
+ | |||
+ | |||
+ | ===== Lösungsansatz ===== | ||
- | ;Lösungsansatz: | ||
Per Konfiguration den Zugriff auch für externe Aufrufer erlauben. | Per Konfiguration den Zugriff auch für externe Aufrufer erlauben. | ||
- | ;Vorteile: | + | |
+ | ===== Vorteile ===== | ||
Die Desktopsuche lässt sich dadurch auch im Netzwerk wie ein Server benutzen. | Die Desktopsuche lässt sich dadurch auch im Netzwerk wie ein Server benutzen. | ||
- | ;Schlüsselwörter: | ||
- | Port 8020 | ||
- | ;Java-Quellen: | ||
- | ;Binaries: | + | ===== Nachteile ===== |
- | ;Autor: | + | Jeder Rechner im gleichen Netzwerk hat Zugriff auf alle Dokumente, die im Suchindex enthalten sind. Falls der Rechner mit der regain-Installation direkt im Internet hängt und der von regain verwendete Port nicht durch eine Firewall geschützt ist, dann jeder Rechner im Internet auf alle Dokumente im Index zugreifen! |
- | Thomas Tesche, cluster:Consult, http://www.thtesche.com/ | + | |
+ | |||
+ | ===== Implementierung ===== | ||
- | ==Implementierung== | ||
In der DesktopConfiguration wurde folgender Tag eingefügt: | In der DesktopConfiguration wurde folgender Tag eingefügt: | ||
- | <!-- Allow/Disallow external access to the running desktop instance --> | ||
- | <allow_external_access>true</allow_external_access> | ||
- | ;Änderungen im Quelltext: Alle Änderungen sind mit ... gekennzeichnet. Dies sind: | + | <code xml> |
- | * ''DesktopConfig.java'' hinzufügen | + | <!-- Allow/Disallow external access to the running desktop instance --> |
- | public boolean getExternalAccessAllowed() throws RegainException; | + | <allow_external_access>true</allow_external_access> |
+ | </code> | ||
- | * ''XmlDesktopConfig.java'' hinzufügen zu Methode loadConfig() | ||
- | node = XmlToolkit.getChild(config, "allow_external_access"); | + | ==== Änderungen im Quelltext ==== |
- | mExternalAccessAllowed = ( node == null ) ? false : XmlToolkit.getTextAsBoolean(node); | + | |
- | public boolean getExternalAccessAllowed() throws RegainException { | + | * In der Schnittstelle ''DesktopConfig.java'' hinzufügen: |
- | loadConfig(); | + | |
- | return mExternalAccessAllowed; | + | |
- | } | + | |
- | Definition von mExternalAccessAllowed als private boolean. | + | <code java> |
+ | public boolean getExternalAccessAllowed() throws RegainException; | ||
+ | </code> | ||
- | * ''FileService.java'' | + | * In der Klasse ''XmlDesktopConfig.java'' zu Methode ''loadConfig()'' hinzufügen: |
- | Ändern Zeile 43 in | + | |
- | if (!localhost && !DesktopToolkit.getDesktopConfig().getExternalAccessAllowed() ) { | + | |
- | * ''SharedTagService.java'' | + | <code java> |
- | Ändern Zeile 88 in | + | node = XmlToolkit.getChild(config, "allow_external_access"); |
- | if (!localhost && !DesktopToolkit.getDesktopConfig().getExternalAccessAllowed() ) { | + | mExternalAccessAllowed = ( node == null ) ? false : XmlToolkit.getTextAsBoolean(node); |
+ | </code> | ||
- | ;Umgesetzt im Branch/Revision | + | <code java> |
- | contrib-v1.2.3-thtesche 312 | + | public boolean getExternalAccessAllowed() throws RegainException { |
+ | loadConfig(); | ||
+ | return mExternalAccessAllowed; | ||
+ | } | ||
+ | </code> | ||
+ | Definition von ''mExternalAccessAllowed'' als private boolean. | ||
- | ;[ Diskussion zum Hack]: | + | * In Klasse ''FileService.java'': |
+ | |||
+ | Ändern Zeile 43 in: | ||
+ | <code java> | ||
+ | if (!localhost && !DesktopToolkit.getDesktopConfig().getExternalAccessAllowed() ) { | ||
+ | </code> | ||
+ | |||
+ | * In Klasse ''SharedTagService.java'': | ||
+ | |||
+ | Ändern Zeile 88 in: | ||
+ | <code java> | ||
+ | if (!localhost && !DesktopToolkit.getDesktopConfig().getExternalAccessAllowed() ) { | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Umgesetzt in ===== | ||
+ | |||
+ | Branch: ''contrib-v1.2.3-thtesche'' | ||
+ | Revision: ''312'' | ||
+ | |||
+ | |||
+ | ===== Einschränkungen ===== | ||
- | ==Weiterentwicklung== | ||
- | ==Einschränkungen== | ||
Defaultmäßig sollte der externe Zugriff nicht erlaubt sein. | Defaultmäßig sollte der externe Zugriff nicht erlaubt sein. | ||
- | ==Bugs== | ||
+ | |||
+ | **Autor:** Thomas Tesche, cluster:Consult, http://www.thtesche.com/ |