Curl ORBは、クライアントからアクセスできるサービスクラスを制限するすることができます。これには、サーバのweb.xmlの設定と@RemoteServiceアノテーションで制限できます。(WEB-INF/web.xml)
まず、アプリケーションの環境として、以下のようにweb.xmlのcontext-paramにnone, development, test, productionを設定します。
<context-param> |
次に公開したいサービスクラスに@RemoteServiceアノテーション(com.curlap.orb.securityパッケージ)を指定します。@RemoteServiceアノテーションの引数には、列挙型であるEnvironment(com.curlap.orb.securityパッケージ)を指定します。Environmentには、DEVELOPMENT, TEST, PRODUCTIONを指定できます。サンプルを以下に記載します。
@RemoteService(Environment.DEVELOPMENT) // …. } |
この@RemoteService(Environment.DEVELOPMENT)の意味はweb.xmlに指定した環境がdevelopementの際、クライアントからアクセス可能という意味です。またこの例の場合、環境がtest, productionの場合はアクセスできないという意味となります。また、もう一つの例をあげますと、@RemoteService(Environment.PRODUCTION)を指定した場合は、環境がdevelopment, test, productionどれでもクライアントからアクセスできます。これを以下の表にまとめました。
アプリケーション環境 | 説明 | アクセス可能なサービスの@RemoteServiceに指定するEnvironment |
none | 非セキュリティ設定 | すべてアクセス可能(@RemoteServiceアノテーションも不要) |
development | 開発環境用 | Environment.DEVELOPMENT, Environment.TEST, Environment.PRODUCTION |
test | テスト環境用 | Environment.TEST, Environment.PRODUCTION |
production | 本番環境用 | Environment.PRODUCTION |
注意)none以外は@RemoteServiceアノテーションが必要です。
注意)@RemoteServiceのように引数を省略した場合は、@RemoteService(Environment.PRODUCTION)と同等になります。
ちなみに、コード生成ツールはdevelopment環境のみ利用可能です。