問題
- このHow-To記事に従いました: How to add security, authentication to my REST service? (セクション5.1)に従いましたが、ゲストユーザーはまだブラウザから私たちのエンドポイントにアクセスすることができます。
-
PortalSessionAuthVerifierを有効にすると、アクティブなセッションを持たないユーザーもエンドポイントにアクセスできるようになります。
環境
- Liferay DXP 7.0
解像度
- DXP 7.0のAuthVerifiersレイヤーの設計により、ゲストユーザーがエンドポイントにアクセスするのを防ぐために余分なステップが必要になります。
- RESTアプリケーションの内部にユーザーパーミッションレイヤーを実装し、以下のように追加することで、ユーザーがサインインしているかどうかをチェックします:
PermissionChecker permissionChecker = PermissionThreadLocal.getPermissionChecker();
if (!permissionChecker.isSignedIn()) {
throw new WebApplicationException(Response.Status.FORBIDDEN);
}