2017-04-11 30 views
1

クライアントがまったく認証する必要がないように、BaseXで公開REST APIを作成することはできますか?BaseX:認証なしの公開REST API

このパブリックAPIは読み取り専用である必要があります。私がすでに行ってきたのは、HTTPGuestというユーザーを作成することです。このユーザーには、特定のデータベースへの読み取りアクセス権があります。

私はbasexhttp -UHTTPGuestを試しました。しかし、APIは依然として基本認証を介して資格情報を取得したいと考えています。

+1

をユーザー/パスフレーズの組み合わせを追加しますコマンドラインでユーザーを指定するのに十分であるようにしてください。 –

+1

はい、答えが投稿された後、私は自分自身を認識しました。私の場合の問題は実際に別の問題でした。APIは 'basexhttp'の親ディレクトリではない作業ディレクトリから' basexhttp'を実行したときに基本認証を要求しました。私は今、基本的に 'cd /.../basex/bin;を実行するラッパースクリプトを持っています。 。/ basexhttp'。しかし、Jens Eratの答えは私にとっても有益です。なぜなら、今は '-U'オプションをいつも使う必要がないからです。 – Seb3736

答えて

2

にあるweb.xmlファイルを変更すると、デフォルトの資格情報を提供できます。このファイルは、後でBaseX 8.6を使用している場合、それは実際にすべき、ブロック>

ここ
<!-- REST Service (can be deactivated by removing this entry) --> 
    <servlet> 
    <servlet-name>REST</servlet-name> 
    <servlet-class>org.basex.http.rest.RESTServlet</servlet-class> 
    <!-- service-specific credentials 
    <init-param> 
     <param-name>org.basex.user</param-name> 
     <param-value/> 
    </init-param> 
    <init-param> 
     <param-name>org.basex.password</param-name> 
     <param-value/> 
    </init-param> 
    --> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>REST</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 

次のものが含ま<init-param/>サブツリーのコメントを解除して、<param-value/>要素に例えば

<!-- REST Service (can be deactivated by removing this entry) --> 
    <servlet> 
    <servlet-name>REST</servlet-name> 
    <servlet-class>org.basex.http.rest.RESTServlet</servlet-class> 
    <init-param> 
     <param-name>org.basex.user</param-name> 
     <param-value>HTTPGuest</param-value> 
    </init-param> 
    <init-param> 
     <param-name>org.basex.password</param-name> 
     <param-value>super-secret-passphrase</param-value> 
    </init-param> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>REST</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
+1

マイナーな追加:BaseX 8.6では、パスワードはもはや指定する必要はありません(とにかくサーバーインスタンスに知られているので)。 –

+0

'org.basex.password'を設定しなくても、完璧に動作します。あなたがた両方に感謝します! – Seb3736