問題
- 認証されていない(Guest)ユーザーで http://localhost:8080/api/jsonws にアクセスし、コンテキストパスを選択すると、「Access denied」エラーが発生します。
-
例えば、シンプルなサービスビルダーモジュールを作成し、デフォルトのままではFOOが作成されます。
-
FooServiceImplの中に、簡単なgetData()メソッドを記述し、このモジュールをビルドしてデプロイする。 -
デプロイ後、認証されていないユーザーとして http://localhost:8080/api/jsonws を開き、コンテキスト名を foo と選択 ->getData をクリック ->Invoke をクリックします。 以下のようなエラーが発生します;
"Access denied to com.liferay.ws.service.FooService#getData"
-
環境
- Liferay DXP 7.1
解決策
- 上記のエラーは、次の手順に従って解決できます。
1)[コントロールパネル]に移動します>構成>サービスアクセスポリシー
2)「+」アイコンをクリックして新しいポリシーを追加します。
3)「有効」と「デフォルト」を確認します。チェックボックス。
4)公開する必要のあるクラス名とメソッド名とともに、名前とタイトルを入力して保存します。 下図をご参照ください。
- これで、未認証のユーザーが新しく作成されたWebサービスにアクセスできるようになります。