7.4 U34+ で OpenIdConnectProvider クラスにアクセスするには?

問題

  • com.liferay.portal.security.sso.openid.connect.OpenIdConnectProvider;com.liferay.portal.security.sso.openid.connect.OpenIdConnectProviderRegistry;のLiferayクラスは、 LPS-150092によってU34+で削除されました。
  • カスタマイズの際、どのように置き換えることができますか?

環境

  • DXP 7.4

解像度

  • 置換クラスを実現する1つの方法は OpenIdConnectProviderRegistryImpl.findOpenIdConnectProviderメソッドをカスタマイズすることです。
    • これは 設定テーブルからすべてのエントリを取得する必要があります。 で始まる _configuration テーブルからすべてのエントリを取得する必要があります。からすべてのエントリを取得し、それを繰り返し、一致する プロバイダ名.
    • これは以前、インメモリーマップを使って行った(詳しくは LPS-150092参照)。 基本的には、サーバーの起動時やコンフィギュレーションの追加・削除時に、providerName(キー)をconfiguration(値)としてマップを更新します。 そこから簡単にコンフィギュレーションを調べることができた。
    • また、マップをスキップして、リクエストごとにコンフィギュレーションの取得とフィルタリングだけを実行することもできる。
  • あるいは OpenID Connect 接続ごとにOAuthClientEntryを作成するので、以下のスクリプトを使用してデータにアクセスすることもできます。
    • com.liferay.oauth.client.persistence.service.OAuthClientEntryLocalServiceUtil.getOAuthClientEntries(-1, -1).each { client ->
      out.println(client);
      }

追加情報

  • 追加により OpenIdConnectProvider の 設定がローカルに保存さ れなくなりました。 LPS-150092OpenIdConnectProviderRegistryImpl.findOpenIdConnectProviderようなクラスで簡単に取得する ことはできません。 このコード変更は次のサイトで確認できる。https://github.com/brianchandotcom/liferay-portal/compare/03162209ce...23b907d1cf.
  • なぜなら OpenIdConnectProviderオブジェクトは、それ自体で使われるのではなく、ログインや認証の必要性に応じて動的に収集されることを意図していたため、すべてはバックエンドに移動されました。
    そのため OpenIdConnectProviderRegistryImplクラスは歴史的に内部的なものでした。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています