非セキュア・データ・ストアでのプロキシの使用

プロキシの起動

非セキュア・データ・ストアのプロキシを開始するには、次のコマンドを使用します。

java -jar lib/httpproxy.jar \ 
-storeName <kvstore_name> \ 
-helperHosts <kvstore_helper_host> \ 
[-hostname <proxy_host>] \ 
[-httpPort <proxy_http_port>] 
説明
  • kvstore_nameは、データ・ストア・デプロイメントから取得されたデータ・ストア名です。pingを参照してください。
  • kvstore_helper_hostは、データ・ストア・デプロイメントから取得されたデータ・ストアのヘルパーhost:portリストです。Javaダイレクト・ドライバ開発者ガイドKVStoreハンドルの取得
  • proxy_hostは、プロキシ・サービスをホストするマシンのホスト名です。プロキシが起動されたマシン以外のマシンからプロキシにアクセスする場合は、プロキシを実行しているマシンのホスト名を指定します。このパラメータはオプションで、デフォルトはlocalhostです。
  • proxy_http_portは、プロキシがホスト・マシンでリクエストを監視しているポートです。これはオプションのパラメータで、デフォルトは80です。

    ノート:

    ポート80を使用するには、マシンによっては追加の権限が必要になる場合があります。

Oracle NoSQL Database Javaドライバには、Javaアプリケーションがプロキシと通信できるようにするjarファイルが含まれています。

Javaドライバをアプリケーションのクラスパスにインストールし、次のコードを使用してプロキシに接続します。

String endpoint = "http://<proxy_host>:<proxy_http_port>"; 
StoreAccessTokenProvider atProvider = new StoreAccessTokenProvider(); 
NoSQLHandleConfig config = new NoSQLHandleConfig(endpoint); 
config.setAuthorizationProvider(atProvider); 
NoSQLHandle handle = NoSQLHandleFactory.createNoSQLHandle(config); 

説明

  • proxy_hostは、プロキシ・サービスをホストするマシンのホスト名です。これは、以前に構成したホストと一致している必要があります。
  • proxy_http_portは、プロキシがホスト・マシンでリクエストを監視しているポートです。これは、以前に構成したhttpポートと一致する必要があります。

onPremises構成には、Oracle NoSQLデータベースの実行中インスタンスが必要です。また、実行中のプロキシ・サービスも必要です。

データ・ストアが保護されていない場合は、borneo.kv.StoreAccessTokenProviderの空のインスタンスが使用されます。たとえば:
from borneo import NoSQLHandle, NoSQLHandleConfig
from borneo.kv import StoreAccessTokenProvider
#
# Assume the proxy is running on localhost:8080
#
endpoint = 'http://localhost:8080'
#
# Create the AuthorizationProvider for a not secure store:
#
ap = StoreAccessTokenProvider()
#
# create a configuration object
#
config = NoSQLHandleConfig(endpoint).set_authorization_provider(ap)
#
# create a handle from the configuration object
#
handle = NoSQLHandle(config)

onPremises構成には、Oracle NoSQLデータベースの実行中インスタンスが必要です。また、実行中のプロキシ・サービスも必要です。この場合、Endpoint構成パラメータは、NoSQLプロキシ・ホストおよびポートの場所を指す必要があります。

次のコードを使用してプロキシに接続します。
...cfg:= nosqldb.Config{
    // EDIT: set desired endpoint for the Proxy server accordingly in your environment.
    Endpoint: "http://localhost:8080",
    Mode:     "onprem",
}
client, err:=nosqldb.NewClient(cfg)
iferr!=nil {
    fmt.Printf("failed to create a NoSQL client: %v\n", err)
    return
}
deferclient.Close()
// Perform database operations using client APIs.// ...

アプリケーションは、プロキシ・サービスを介して接続して、実行中のNoSQLデータベースを使用します。

非セキュアなモードでは、ドライバはHTTPプロトコル経由でプロキシと通信します。必要な情報は通信エンドポイントのみです。オンプレミスNoSQLデータベースの場合、エンドポイントはプロキシのURLをhttp://proxy_host:proxy_http_portの形式で指定します

次のコードを使用してプロキシに接続します。
const NoSQLClient = require('oracle-nosqldb').NoSQLClient;
const ServiceType = require('oracle-nosqldb').ServiceType;
const client = new NoSQLClient({
    serviceType: ServiceType.KVSTORE,
    endpoint: 'myhost:8080'
});
同じ構成をファイルに格納することもできます。次の内容を含むファイルconfig.jsonを作成します。
{
    "serviceType": "KVSTORE",
    "endpoint": "myhost:8080",
}
その後、このファイルを使用してNoSQLClientインスタンスを作成できます。
const NoSQLClient = require('oracle-nosqldb').NoSQLClient;
const client = new NoSQLClient('/path/to/config.json');

アプリケーションは、プロキシ・サービスを介して接続して、実行中のNoSQLデータベースを使用します。

非セキュアなモードでは、ドライバはHTTPプロトコル経由でプロキシと通信します。必要な情報は通信エンドポイントのみです。オンプレミスNoSQLデータベースの場合、エンドポイントはプロキシのURLをhttp://proxy_host:proxy_http_portの形式で指定します

非セキュア・モードでプロキシに接続するには、通信エンドポイントおよびサービス・タイプをServiceType.KVStoreとして指定する必要があります。NoSQLConfigのインスタンスは、直接またはJSON構成ファイルで指定できます。
var client = new NoSQLClient(
    new NoSQLConfig
    {
        ServiceType = ServiceType.KVStore,
        Endpoint = "myhost:8080"
    });
JSON構成ファイルで同じ構成を指定することもできます。次の内容を含むファイルconfig.jsonを作成します。
{
    "ServiceType": "KVStore",
    "Endpoint": "myhost:8080"
}
その後、このファイルを使用してNoSQLClientインスタンスを作成できます。
var client = new NoSQLClient("/path/to/config.json");

Oracle NoSQL Database Spring Data SDKには、Spring Dataアプリケーションがプロキシと通信できるようにするファイルが含まれています。

アプリケーションのクラスパスにJavaドライバをインストールします。次のコードを使用してプロキシに接続します。

configuration Spring Beanは、NosqlDbConfigオブジェクトを提供します。StoreAccessTokenProviderクラスを使用すると、Oracle NoSQL Databaseストアに接続するようにSpring Data Frameworkを構成できます。

import com.oracle.nosql.spring.data.config.AbstractNosqlConfiguration;
import com.oracle.nosql.spring.data.config.NosqlDbConfig;
import com.oracle.nosql.spring.data.repository.config.EnableNosqlRepositories;
 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
import oracle.nosql.driver.kv.StoreAccessTokenProvider;
 
@Configuration
 
@EnableNosqlRepositories
 
public class AppConfig extends AbstractNosqlConfiguration {
    @Bean
    public NosqlDbConfig nosqlDbConfig() {
        AuthorizationProvider authorizationProvider;
        authorizationProvider = new StoreAccessTokenProvider();
        return new NosqlDbConfig("http://<proxy_host:proxy_http_port>", authorizationProvider);
    }
}
説明
  • proxy_hostは、プロキシ・サービスをホストするマシンのホスト名です。
  • proxy_http_portは、プロキシがホスト・マシンでリクエストを監視しているポートです。