JSONWSゲストアクセス

LiferayプラットフォームのJSONWSページは、 Liferay_URL / api / jsonwsで認証されていないユーザーが利用できます。 ただし、これは、ゲストユーザーがJSON Webサービスを実行するためのアクセス権を持っていることを意味するものではありません。 ゲストとしてアクセスするときにWebサービスがJSONWSページにリストされている場合でも、ほとんどのWebサービスを呼び出すことができません。 たとえば、ゲストが / announcementsdelivery / update-delivery使用している場合、メソッドを Guestとして呼び出すと、次のエラーが発生します。

Access denied to com.liferay.announcements.kernel.service.AnnouncementsDeliveryService#updateDelivery

これは、基礎となるサービスが、サービスのタイプと目的に応じてLiferayの権限フレームワークによって保護されているためです。たとえば、ユーザーは、上記の updateDelivery サービスコールを実行するために、Userエンティティに対するADD USERおよびUPDATE権限を持っている必要があります。 。

認証されていないサービス呼び出しは、Liferayプラットフォームインスタンスまたはプラグインのリモートメソッドに @AccessControlled アノテーションがある場合にのみ機能します。 Guestとして呼び出すことができる少量のサービスがあります(例: / country / get-countries。これは、次のコードの @AccessControlled(guestAccessEnabled = true) アノテーションにより、ゲストを介して特定のメソッドにアクセスできるためです。

Line 103 in CountryServiceImpl.java

    @AccessControlled(guestAccessEnabled = true)
    @Override
    public List<Country> getCountries(boolean active) {
        return countryPersistence.findByActive(active);
    }

DXP 7.1 GA1 および DXP 7.0 SP7 / FP57以降、ゲストがアクセスできるその他のリモートサービス:

/assetentry/increment-view-counter

/calendar.calendarbooking/search

/country/get-countries

/pushnotifications.pushnotificationsdevice/delete-push-notifications-device

/region/get-regions

/sync.syncdlobject/get-sync-context

APIサービスは、コンパイル時に @AccessControlAdvice アノテーションを使用してパブリックになるように構成できます。 このことをしてくださいは、ノート ありません 実行時の設定とポータル管理者許可 必見 認証なしでサービスを利用できるようにするために再コンパイルポータルを。

portal-ext.propertiesファイルで以下のポータルプロパティを falseに設定することで、JSON APIページを完全に無効にすることもできます。

    #
    # Set this property to true if JSON web services are discoverable through
    # the API page.
    #
    jsonws.web.service.api.discoverable=true
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています