1

私が実装しているシナリオに大きな問題があります。ヘルプ/ポインターは大歓迎です。

シナリオは次のとおりです。

  1. liferay ポータルの OpenId プロバイダーであるシステム 1 へのユーザー ログイン
  2. ユーザーには、OpenId ID と ID を含むリンクが表示されています
  3. ユーザーがリンクを押すと、新しいブラウザー タブが開かれ、認証されていない場合、ユーザーは liferay ポータルにログインされ、system1 ログイン ページにリダイレクトされます。
  4. 認証プロセスは OpenId を介して実行し、OpenId ID プロバイダーからデータを取得する必要があります

comming for liferay に AutoLogin を実装するフックを使用する必要があることがわかりましたが、問題はありません。

問題は、OpenId による認証と OpenId からのデータの取得です。

OpenId とそれを Liferay と統合する方法について誰か助けてくれませんか


皆さん、こんにちは。返信ありがとうございます。このリンクを使用して、liferay
で autologin を使用してから、このクラス 4 の openid RegistrationService.java クラスを使用し、open id が正しく機能するようになりました。問題は、このログイン リンクに、他の war ファイルで使用する必要があるいくつかのパラメーターがあることです。このパラメーターをセッションに保存し、openid で認証した後に取得しますか? よろしく

4

1 に答える 1

1

ポートレットとサーブレット間のセッション共有で解決策を見つけました。liferay 6.1.1 で動作します。まず、liferay-portlet.xml に次のタグを追加して、プライベート ポートレット セッションを有効にします。 <private-session-attributes>true</private-session-attributes>

ポータルとポートレットの間でセッションを共有します。プロパティ ファイルで次のプロパティを設定して、portal-ext.properties ファイルで共有セッション属性を定義します。 session.shared.attributes= LIFERAY_SHARED_ , APP_SHARED_

そしてフックモジュールのサーブレットクラスで

HttpSession セッション = request.getSession(false); session.setAttribute("APP_SHARED_test",testValue);

そして、コントローラーで APP_SHARED_test の値を取得できます

String verCode= (String)actionRequest.getPortletSession().getAttribute("APP_SHARED_ver_code",PortletSession.APPLICATION_SCOPE);

于 2013-08-28T05:45:47.703 に答える