2016-05-27 7 views
1

リソースタイプ= "this/is/a/test"のSlingサーブレットがあります。AEMのsiteadminからページを非表示にする方法は?

@SlingServlet(methods = { "GET" }) 
@Properties({ @Property(name = "service.pid", value = "com.test.TestServlet", propertyPrivate = false), 
    @Property(name = "sling.servlet.resourceTypes", value = {"this/is/a/test"})}) 
public class TestServlet extends SlingSafeMethodsServlet { 

私は青写真におけるブランドとロケールを持つMSM構造を有しています。

SampleBlueprint 
     Organization One 
      en_US 
       Home Page 
       Contact US 
       bin 
        test-servlet 

    SampleLiveCopies 
     Organization One 
      America 
       en_US 
       Home Page 
       Contact US 
       bin 
        test-servlet 
       fr_US 
       Home Page 
       Contact US 
       bin 
        test-servlet 
      Canada 
       en_CA 
       Home Page 
       Contact US 
       bin 
        test-servlet 

テストサーブレットには、スリング:resourceType = "this/is/a/test"があります。

サーブレットでは、パスを使用して応答を決定しています。 例: パスが/ content/SampleLiveCopies/OrganizationOne/America/en_US/bin/test-servletの場合 英語のアメリカ関連のデータを返します。

しかし、「bin/test-servlet」というページがsiteadminに表示されるため、作成者は編集する権限を持っています。

したがって、siteadminでbin/test-servletページを非表示にしたいとします。

+0

siteadminの下にサーブレットのページを作成する必要がありますか?サーブレットは[パス情報を取得できます](https://sling.apache.org/apidocs/sling5/org/apache/sling/api/SlingHttpServletRequest.html#getRequestPathInfo())。あなたはen_USの下でホームページからAJAX呼び出しを介してサーブレットを呼び出しますか?あるいはユースケースが違うのでしょうか? –

+0

はい。ホームページから、私はAJAX呼び出しでサーブレットをリクエストしています。 URLから国、言語を認識するサーブレットフィルタがあります。これにより、サーブレットはデータを提供することができます。サーブレットのパスを使用する際の問題は、応答がディスパッチャでキャッシュされず、パフォーマンスが低下することです。 – Dileepa

答えて

3

ページを非表示にする - あなたはプロパティを使用しJCRに値を隠さ:ページのコンテンツ。私は、同様のアプローチがあるだろうと思う。試してみる。

+0

完璧で、働いています。ありがとう。 – Dileepa

+0

悲しいことに、これはTouchUIでは機能しません – Sutty1000

関連する問題