2

これは基本的に2つの質問ですか?最初に、ユーザーがパワー ユーザーの表示権限を持つページにアクセスしようとしたときに、ページの liferay リダイレクトを変更する方法を考えました。Liferay はデフォルトで、ログインページがある localhost:web/guest/home を指しています。私のアプリケーションでは、別のログイン ページがあり、次のページにリダイレクトしたいと考えています。私はウェブを閲覧していて、設定することauth.login.site.url=/whereiwontittopointで実際に私をそこにリダイレクトする必要があることがわかりました。しかし、そうではありません。Liferay 6.0.6 Community Edition を使用しています。誰かがこれをしましたか?これは正しい方法ですか、それともフックで行う必要がありますか?

私の他の質問は次のとおりです。一部のページにカスタム ロールを設定したいと考えています。そして、ユーザーがその特定の役割を持っていない場合は、デフォルトのログインではなく、まったく別のページにリダイレクトする必要があります。一部のサービスでフックを使用してこれを実行できると確信していますが、何らかの理由でこのサービスを特定できません。

EDIT最初の質問で問題を解決しました。2 番目の質問については、ここで得た回答は、おそらく質問を正しく投稿しなかったため、私が探していたものではありませんでした。これは私がやったことと私がする必要があることの完全なシナリオです:

まず最初に、すべてのライフレイ ページにある /web/guest パスを web/something/ に変更しました。全体的な考え方は次のとおりです。spring mvc を使用してアプリケーションを作成しています。管理者が他のユーザーに表示するページを作成できるアプリケーションへのバックエンドを作成しました (これは、liferay のコントロール パネルに移動してページを追加することによってではなく、アプリケーションのロジックによって行われます)。いくつかのロジックに応じてページが作成されたら、その特定のページのロールを作成します(ライフレイ管理者ではなくコードを介して顧客ロールも作成します)。一部のユーザーは、一部の基準を満たしている場合とそうでない場合に、この役割を与えられます。ここで私の問題が発生し、アプリケーションにログインしているユーザーが、そのページ用に作成したロールの表示権限を必要とするページにアクセスしようとすると (ブラウザーでページへの直接 URL を入力することによって)、ユーザーは適切なロールを持っていません。彼は localhost/web/(username)/home という個人ページにリダイレクトされ、何らかの理由でそのページでデフォルトで liferay からアプリケーションの他のすべてのユーザーの個人データ (ユーザー名) を表示できます。私の質問は、上記のシナリオで発生するリダイレクトをコードで処理する方法です。実際に servlet.service.events.pre アクションをフックして、ユーザーがそのページにアクセスする前に、適切な権限があるかどうかを確認し、実際にリクエストを変更しようとしました。これまでのところいくつかの問題がありますが、解決できますが、このアクションはアプリケーションのすべてのリクエストの前に実行されるため、このアプローチは私が探しているものではありません(ページ処理はそのアプリケーションのほんの一部です)つまり、理由もなく多くのコードが実行されることになります。ロールを作成するときに例外がリダイレクトされる場所を追加する方法があるかどうか疑問に思っていましたか? そうでない場合、このシナリオを解決するのに役立つどのアクションをフックする必要がありますか? ロールを作成するときに例外がリダイレクトされる場所を追加する方法があるかどうか疑問に思っていましたか? そうでない場合、このシナリオを解決するのに役立つどのアクションをフックする必要がありますか? ロールを作成するときに例外がリダイレクトされる場所を追加する方法があるかどうか疑問に思っていましたか? そうでない場合、このシナリオを解決するのに役立つどのアクションをフックする必要がありますか?

4

3 に答える 3

1
  1. 最初の質問では、うまくいくはずです-

    auth.forward.last.paths=/sign-in 
    

    サインインはあなたのページ名になります

  2. 2 番目の質問に対する答えは、アクションを拡張するフックを作成し、portal-ext.properties に以下のエントリを作成する必要があるということです。

    login.events.post=com.liferay.portal.events.LoginPostAction,com.liferay.portal.events.CustomLandingPageAction
    

このプロパティの使用方法については、フォーラムで多くの情報を見つけることができます。

于 2012-05-10T01:02:04.777 に答える
0

1.default.landing.page.path=/whereiwontittopointについては、portal.properties で設定します。Liferayログイン ページのリダイレクトを参照してください。

2.フックを作成し、servlet.service.events.post=com.my.action.MyActionこのアクションを設定して実装します。この時点で、ユーザーを別のページにリダイレクトできます。

于 2012-05-07T17:01:57.303 に答える