LiferayはAPIをサポートし、API自体やLiferayのソフトウェアの他の部分と関係するあらゆる問題を解決し、あらゆる質問に回答します。 カスタム開発に関する問題や質問は、当社のグローバルサービスチームまたはそれらのカスタム化の開発者が対応することがあります。
お客様がカスタムポートレットにJSON認証を使用する場合、サービスコールに関するLiferay APIを含める必要があります。 そうしないと、ユーザーは2回目のサインイン認証が必要になる場合があります。 この記事では、カスタムポートレットを使用しているため、一部の情報は特定の環境に適合させる必要があります。
解像度
ポートレットをコンパイルする前に、ポートレットの view.jsp
を適宜修正してください:
code> function callService2() { Liferay.Service('/api/jsonws/[custom portlet name].thing/find-all-things', function(obj) { console.log(obj); } ); }
宛先
code> function callService2() { Liferay.Service('/[custom portlet name].thing/find-all-things', function(obj) { console.log(obj); } ); }
- カスタムポートレットをコンパイルします。
- Liferayバンドルを起動します。
- すべてのデフォルトオプションを使用し、Hypersonicをデフォルトのデータベースとして残します。
- アプリケーションサーバーを停止します。
-
portal-ext.propertiesを新たに作成し、以下のプロパティを設定します:
code> auth.token.check.enabled=false json.service.auth.token.enabled=false jsonws.web.service.public.methods=get*,has*,is*,save*,xx*,remove*,update* json.service.public.methods=get*,has*,is*,save*,xx*,remove*,update*
-
portal-ext.properties
をportal-setup-wizard.properties
と同じディレクトリに配置します。 - ポータルを再起動する。
- カスタムポートレットをデプロイします。
- Cookieのセッション情報がない新しいブラウザウィンドウを開く。 Chromeをお使いの方は、インコグニートウィンドウ機能をご利用ください。 (例ではすべてChromeを使用します。 Firefox、Internet Explorerをお使いの方は、それぞれプライベートウィンドウ、InPrivate Browsingが該当します)。
- をクリック > マイ・プライベート・ページに移動します。
- Hello Worldという名前のプライベートページを作成します。 結果のURLは、
http://localhost:8080/group/[username]/hello-world
となります。 - そのページにカスタムポートレットを追加します。
- ブラウザを閉じる。
- 新しいIncognito Chromeウィンドウを開き、2つのタブを表示します:
http://localhost:8080/
http://localhost:8080/[custom portlet name]/api/jsonws
- まだログインしないでください。 この時点で、ユーザーは2つ目のブラウザタブで認証を求められることになります。
- 2つ目のタブを閉じます。
- 最初のブラウザタブでポータルにログインする。
-
http://localhost:8080/ [カスタムポートレット名]/api/jsonws
この URL に新しいタブを開きます。 ユーザーが認証され、再ログインする必要がないことに注意してください。
追加情報
JSON Web Services (Liferay Portal 6.1 Developers Guide)。