留言板

Anzeigen von Portlets in einem bestimmten IP-Range

Moritz Reyer,修改在12 年前。

Anzeigen von Portlets in einem bestimmten IP-Range

New Member 帖子: 2 加入日期: 11-7-1 最近的帖子
Hallo liebe Liferay-Gemeinde,
da ich auf die schnelle nichts gefunden habe und absoluter Java Neuling bin kommt folgende Frage:

Kann ich über Java-Skipt sagen, dass ein Portlet nur angezeigt wird,
wenn der Anfragende Client eine bestimmte IP-Adresse hat.

Beispiel:
Rechner A (192.168.xxx.xxx), der in der Firmendomäne hängt darf Portlet XY angezeigt bekommen
Rechner B (217.145:xxx.xxx), der übers Internet auf das Portal zugreift darf Portlet XY nicht angezeigt bekommen.

Klar könnte ich es auch über Benutzergruppen steuern.
Es gibt aber Nutzer, die zum einen teilweise in der Domäne arbeiten und an einem anderen Tag wieder unterwegs ist.
Dadurch müsste ich für einen Benutzer mehrere Userprofile anlegen, dadurch habe ich aber dass Problem immer noch nicht
gelöst, da der Benutzer dann extern trotzdem mit dem internen Profil auf das Portal zugreifen könnte.

Vielen Dank für die Antworten
thumbnail
Kolja Köster,修改在12 年前。

RE: Anzeigen von Portlets in einem bestimmten IP-Range

Regular Member 帖子: 164 加入日期: 09-5-11 最近的帖子
Hallo erstmal,
Moritz Reyer:
Hallo liebe Liferay-Gemeinde,
da ich auf die schnelle nichts gefunden habe und absoluter Java Neuling bin kommt folgende Frage:

Kann ich über Java-Skipt sagen, dass ein Portlet nur angezeigt wird,
wenn der Anfragende Client eine bestimmte IP-Adresse hat.

Schätze nein. Java Skript hast Du vermutich im Portlet eingesperrt, folglich ist das Portlet schon geladen angezeigt worden, wenn das Skript ausgeführt wird. Außerdem läuft das ganze auf der Maschine des Anwenders, das ist also vom Sicherheitsaspekt ein bedenktlicher Ansatz.

Moritz Reyer:

Beispiel:
Rechner A (192.168.xxx.xxx), der in der Firmendomäne hängt darf Portlet XY angezeigt bekommen
Rechner B (217.145:xxx.xxx), der übers Internet auf das Portal zugreift darf Portlet XY nicht angezeigt bekommen.

Klar könnte ich es auch über Benutzergruppen steuern.
Es gibt aber Nutzer, die zum einen teilweise in der Domäne arbeiten und an einem anderen Tag wieder unterwegs ist.
Dadurch müsste ich für einen Benutzer mehrere Userprofile anlegen, dadurch habe ich aber dass Problem immer noch nicht
gelöst, da der Benutzer dann extern trotzdem mit dem internen Profil auf das Portal zugreifen könnte.

Bleep? Jetzt hast Du mich abhängt. Die Zugriffsregelung über eine Benutzergruppe bleibt doch konsistent, völlig egal von wo sich jemand einloggt. Außerdem hast Du doch in Deinem Beispiel genau das geliche Problem. Mitarbeiter Bob kann ganz toll aus dem Firmennetz arbeiten (Rechner A aus Deinem Beispiel) und geht dann nach Hause und versucht es von dort aus nochmal (Rechner B ) was dann fehlschlägt.
Wenn Du das unbedingt na IP filtern willst würde ich das Router / Tomcat / IPTables machen lassen und nicht Java Skript.
Aber vielleicht verstehe ich Dich auch nicht richtig.

Schönes Wochenende

Gruß
Kolja
thumbnail
Armin Cyrus Dahncke,修改在12 年前。

RE: Anzeigen von Portlets in einem bestimmten IP-Range

Junior Member 帖子: 81 加入日期: 08-8-12 最近的帖子
Hi Moritz,

ich würde 2 org rollen erstellen, eine mit mehr und eine mit weniger berechtigungen auf die portlets die von der IP sperre versehen sind.

Dann nach dem Schema der Klasse DefaultLandingPageAction eigene Events erstellen und als Hook-plugin die portal.properties setzen:


#
# Login event
#
login.events.pre=
login.events.post=

#
# Logout event
#
logout.events.pre=
logout.events.post=


In deiner eigenen Action-Klasse setzt Du dann für den Benutzer die entsprechende Rolle.

gruss armin
Moritz Reyer,修改在11 年前。

RE: Anzeigen von Portlets in einem bestimmten IP-Range

New Member 帖子: 2 加入日期: 11-7-1 最近的帖子
Ist es den möglich, bei dem
login.events.post 

eine Rolle für den anzumeldenden Benutzer zu setzen und bei
logout.events.pre 

ihm diese Rolle diese Rolle wieder wegnehmen?

Stellt sich bei mir die Frage, ob die das logout event auch dann ausgeführt wird, obwohl der Benutzer nur das Fenster schließt und sich nicht ordnungsgerecht abmeldet.
Wird bei dem Auto auto logout dies auch greift.
Hiran Chaudhuri,修改在12 年前。

RE: Anzeigen von Portlets in einem bestimmten IP-Range

Regular Member 帖子: 188 加入日期: 10-9-1 最近的帖子
Moritz Reyer:
Kann ich über Java-Skipt sagen, dass ein Portlet nur angezeigt wird,
wenn der Anfragende Client eine bestimmte IP-Adresse hat.

Keine gute Idee. Sowas muß auf der Serverseite abgefackelt werden, nicht auf dem Client. Also ist Java Deine Sprache der Wahl - oder der J2EE Standard.

Da ich glaube, daß Liferay keine solche Funktion bereitstellt, musst Du etwas selber bauen.
Ist das Portlet in einer eigenen War-Datei? Hast Du das Portlet selbst gebaut?

In dem Fall könntest Du sehr einfach den Java-Code des Portlet verändern, oder Du könntest in der web.xml Datei Veränderungen einführen. Ich gehe mal davon aus, daß Du damit weiterkommst...