Java 版


Java 版


Java 版のAPI Server Web アプリケーションを、Tomcat、JBoss、WebLogic、WebSphere、またはJetty のような、あらゆるJava Servlet コンテナで実行することができます。Java インストールパッケージは、WAR ファイルを同梱しており、どんなJava Web サーバーにも配布ができます。

さらに、Java 版には組み込みJetty サーバーが含まれ、外部サーブレット構成なしでアプリケーションを実行できます。

組み込みJetty サーバーの使用

組み込みJetty サーバーを起動するには、API Server インストールディレクトリにある’apiserver.jar’ を実行するだけです。このディレクトリには、Unix システム上でsystemd またはinit.d サービスを設定するために使用できる’service’ スクリプトも含まれています。

デフォルトでは、組み込みサーバーはポート8080でAPI Server をホストし、プレーンテキスト接続のみを許容します(HTTPS ではなくHTTP)。

サーバーを起動したら、ブラウザをhttp://localhost:8080 に誘導してWeb UI にアクセスします。UI にアクセスするためのデフォルトのユーザー名/パスワード認証情報は、’admin/admin’ です。

ポートの変更

組み込みサーバーがリッスンするポートを設定するには、インストールディレクトリにある’apiserver.xml’ ファイルを見つけます。HTTP コネクタの定義を見つけます:

<New id="httpConnector" class="org.eclipse.jetty.server.ServerConnector">

この定義内で(上記のNew エレメントの直接の子として)、次のXML ブロックを追加してsslContextFactory 引数を指定します:

<Arg name="sslContextFactory">
  <New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
    <Set name="KeyStorePath"><SystemProperty name="apiserver.home" default="."/>/keystore/mycert.pfx</Set>
    <Set name="KeyStorePassword">mypassword</Set>
  </New>
</Arg>

KeyStorePath 要素は、SSL サーバーをホストするときに使用されるSSL 証明書の場所を定義します。上記の例では、API Server インストールディレクトリに’keystore’ フォルダが作成され、このフォルダに’mycert’ というPFX 証明書が含まれていることを前提としています。KeyStorePassword 要素は、構成された証明書に対応するパスワードに設定する必要があります。

ユーザー資格情報の変更

API Server Web UI にログイン可能なユーザーは、インストールディレクトリの’apiserverRealm.properties’ ファイルで定義されています。このファイルの各行は、次の構文でユーザーを定義します。

username:password\[roles\]

新しい行を追加して新しいユーザーを定義するか、既存の行を変更してデフォルトのログインクレデンシャルを変更します。

Tomcat での設定

次の手順で、Tomcat にアプリケーションをインストールできます。

WAR ファイルの配布

Tomcat にWAR ファイルを配布するにはいくつかのオプションがあります。

  • Webapps フォルダにWAR ファイルをコピーする。
  • Tomcat の管理コンソールの中でWAR ファイルの配布を行う。Tomcat のドキュメントには、この方法のさらに詳しい説明があります。

WAR ファイルがTomcat のファイルアップロードに許可されているデフォルトの最大サイズを超えている可能性があります。デプロイメント中のエラーを解決するために、Manager アプリケーションのWEB.XML ファイルを変更して、より大きなファイルを許可することができます。Tomcat の設定に応じて、このファイルは’/usr/share/tomcat7-admin/manager/WEB-INF’、または別の類似ディレクトリにあります。このファイルでは、許容される最大ファイルサイズをビット単位で変更できます。例えば、200MB のWAR ファイルのデプロイメントを許容するには、次の値を変更して許容される最大ファイルサイズを変更します。

<multipart-config>
	<!-- 200MB max -->
	<max-file-size>209715200</max-file-size>
	<max-request-size>209715200</max-request-size>
	<file-size-threshold>0</file-size-threshold>
</multipart-config>

Tomcat ユーザーにAPI Server へのアクセスを許容

アプリケーションの管理者となる人に、”cdata_admin” ロールをアサインします。Tomcat のデフォルトのユーザーレルムを使用している場合は、CATALINA_BASE/conf/tomcat-users.xml にあるtomcat-user.xml ファイルを編集することで、これらのロールを追加することができます。次の例では、管理ユーザーは、アプリケーションへの管理アクセスのために必要なロールを与えられています。

<user name="admin" password="admin" roles="cdata_admin,admin-gui,manager-gui,manager-status,manager-script,manager-jmx" />

データディレクトリ権限の設定

Java Servlet コンテナを実行するプロセスのユーザーに、データディレクトリへの読み/書きのアクセス権限を許可:

  • Windows: C:\\ProgramData\\CData\\
  • Unix or Mac OS X: ~/cdata/

Tomcat サーバーを再起動して、変更を反映します。これでアプリケーションにログインすることができます。

JBoss での設定

次の手順で、JBoss にCData API Server Web アプリケーションをインストールできます。

WAR ファイルの配布

WAR ファイルをJBoss に配布するにはいくつか方法があります。

  • JBOSS_HOME/standalone/deployments サブフォルダにWAR ファイルをコピーすることができます。
  • JBoss の管理コンソールを使ってWAR ファイルをインストールすることもできます。

JBoss ユーザーにアクセスを許可する

JBoss ユーザーにアプリケーションへのアクセスを許容するためには、cdata_admin ロールをアサインします。JBoss のデフォルトのユーザレルムを使用している場合は、JBoss サーバーに同梱されているadd-user.bat ファイルを実行することで、このロールを追加することができます。

データディレクトリ権限の設定

Java Servlet コンテナを実行するプロセスのユーザーに、データディレクトリへの読み/書きのアクセス権限を許可:

  • Windows: C:\\ProgramData\\CData\\
  • Unix or Mac OS X: ~/cdata/

サーバーを再起動して、アプリケーションにログインします。

WebSphere での設定

次の手順で、WebSphere にCData API Server Web アプリケーションをインストールできます。

WebSphere ユーザーにアクセスを許容するPlan の作成

アプリケーションWAR ファイルをWebSphere に配布するためには、deloyment plan を作成します。WebSphere のPlan Creator ウィザードを使って、plan を作成して、WAR ファイルを配布します。WebSphere の管理コンソールからウィザードを起動することもできます。

アプリケーションにログインするユーザーもしくはグループにcdata_admin ロールをアサインします。次のサンプルplan はシステム管理者にアクセスを許容します。

<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1">
  <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
    <dep:moduleId>
      <dep:groupId>default</dep:groupId>
      <dep:artifactId>apiserver</dep:artifactId>
      <dep:version>1371673558693</dep:version>
      <dep:type>war</dep:type>
    </dep:moduleId>
    <dep:dependencies/>
  </dep:environment>
  <context-root>apiserver</context-root>
  <security-realm-name>geronimo-admin</security-realm-name>
  <app:security xsi:type="sec:securityType" xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0" xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <sec:role-mappings>
      <sec:role role-name="cdata_admin">
        <sec:principal name="system" class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal"/>
      </sec:role>
      <sec:role role-name="admin"/>
    </sec:role-mappings>
  </app:security>
</web-app>

データディレクトリ権限の設定

Java Servlet コンテナを実行するプロセスのユーザーに、データディレクトリへの読み/書きのアクセス権限を許可:

  • Windows: C:\\ProgramData\\CData\\
  • Unix or Mac OS X: ~/cdata/

サーバーを再起動して、アプリケーションにログインします。

WebLogic での設定

次の手順で、WebLogic にCData API Server Web アプリケーションをインストールできます。

WAR ファイルの配布

WebLogic の配布ウィザードを使ってWAR ファイルを配布するには:

  1. [デプロイメント]をクリックします。
  2. [デプロイメント]テーブルで、[インストール]をクリックします。
  3. WAR ファイルのパスを入力し、リストからWAR ファイルを選択します。
  4. [デプロイメントをアプリケーションとしてインストールする]を選択します。
  5. [カスタムロール]を選択:管理コンソールで定義されたロールを使います。デプロイメントディスクリプターで定義されたポリシーを使います。このオプションを選択することで、WebLogic の管理コンソールでロールとユーザーの管理ができるようになります。一方、WebLogic は、アプリケーションで定義されたロールとポリシーをロードします。

WebLogic ユーザーにアクセスを許可する

デプロイ後、WebLogic ユーザーにアプリケーションへのアクセスを許容します。

  1. WebLogic の管理コンソールで、[デプロイメント]をクリックします。[デプロイメント]テーブルで、アプリケーションの名前をクリックします。
  2. [セキュリティ]->[Application Scope]->[ロール]->[New]をクリックします。
  3. cdata_admin Web Application Scoped ロールを追加して、アプリケーションを管理するユーザーおよびグループをアサインします。

データディレクトリ権限の設定

Java Servlet コンテナを実行するプロセスのユーザーに、データディレクトリへの読み/書きのアクセス権限を許可:

  • Windows: C:\\ProgramData\\CData\\
  • Unix or Mac OS X: ~/cdata/

サーバーを再起動して、アプリケーションにログインします。

Jetty での設定

API Server にはJetty Web サーバーが組み込まれていますが、アプリケーションを外部のJetty 設定で使用することもできます。

WAR ファイルの配布

WAR ファイルをJetty のwebapps フォルダにコピーします。

Jetty ユーザーにアクセスを許可する

Jetty を開始する前に、Jetty ユーザーにcdata_admin ロールをアサインすることで、アプリケーションへのアクセスを許容します。例えば、JETTY_HOME/etc/realm.properties ファイルを開くことで、管理ユーザーにこのロールを追加することができます。ユーザーのプロパティはパスワードとユーザーロールによって作られています。次に例を示します。

admin: test,server-administrator,content-administrator,admin,user,cdata_admin

Java レルムのログインサービスの設定

また、アプリケーションへのログインサービスの設定をCDataRealm という名前で行わなれければなりません。以下は、HashLoginService の例です:

<Call name="addBean">
  <Arg>
    <New class="org.eclipse.jetty.security.HashLoginService">
      <Set name="name">CDataRealm</Set>
      <Set name="config"><Property name="jetty.home" default="."/>/etc/realm.properties</Set>
    </New>
  </Arg>
</Call>

データディレクトリ権限の設定

Java Servlet コンテナを実行するプロセスのユーザーに、データディレクトリへの読み/書きのアクセス権限を許可:

  • Windows: C:\\ProgramData\\CData\\
  • Unix or Mac OS X: ~/cdata/

サーバーを再起動して、アプリケーションにログインします。

ユーザー管理

Java バージョンのAPI Server Web アプリケーションはフォーム認証を使います。

Java では、ユーザーのロールとパスワードは、Web サーバーのJava レルム設定で管理されます。ユーザーのロールとパスワードの設定方法は、お客様のWeb サーバーのドキュメントを参照してください。アプリケーションにはcdata_admin ロールが必要です。