1

スーパーテナントに配備されているWebサービスを他のテナントに共有したい。私の知る限り、http:// localhost :8280/services/echo?wsdl url を使用していれば、誰でもスーパー管理サービスにアクセスできます。しかし、スーパー テナント アプリケーションにアクセスするだけではなく、正しいテナントのリクエスト数も確認したいと考えています。すべてのテナントに同じアプリケーションをデプロイし、適切な URL (http:// localhost .com:8280/services/t/tenantname/echo?wsdl) でサービスを呼び出して要求数を収集する必要がありますか?

これを行う他の方法はありますか?たとえば、どのテナントがアプリケーションを呼び出しているかなどを示すヘッダー変数をリクエストに入れることができます。この種のアプローチでは、サービスを他のテナントに展開する必要はありません。

4

3 に答える 3

0

次のようなコードを使用できます。

int tenantId = MultitenantUtils.getTenantId(this.getConfigContext());

現在のテナントのテナントIDを取得し、メッセージ自体またはヘッダーで送信します。次に、テナントIDをカウントすることにより、サーバー側でアクセスされたテナントを記録できます。

これは、テナントIDを取得するのに役立ちます。

于 2013-01-08T10:25:02.013 に答える
0

1つの可能性は、各テナントにアプリケーションをデプロイすることです。次に、それぞれに個別のURLを取得します。または、サービスをマルチテナント対応にすることもできます。このためには、サービスを保護する必要があります。サービスにログインすると、ユーザー名を使用してテナントを特定できます。たとえば、fooユーザーはスーパーテナントユーザーである必要があり、foo@bar.comはbar.comテナントに属している必要があります。この場合、カーボンフレームワークは、この認証を行い、テナントの詳細をカーボンコンテキストに設定します。サービスレベルでアクセスできます。例えば。CarbonContext.getCurrentContext()。getTenantID()またはManindaが言及したメソッドを使用します。

于 2013-02-19T03:19:41.593 に答える