Tomcat + Slideのユーザ認証

 前のページではとりあえず使ってみるために、 ゲストユーザに読み書き可能な権限を与えましたが、これではセキュリティ上、実用には使えません。 そこで、TomcatとSlideのユーザ認証を連動して、パスワード認証を行わせるようにします。
 この方法は大きく2つに分かれます。それは

  • TomcatのBASIC認証などの認証機構を使い、認証されたユーザ情報をSlideに渡す。
  • Slide付属のslide_catalinawrapper.jarに含まれるレルム、SlideRealm を使って、Slideの名前空間を使ってTomcatに認証をさせる
ですが、後者の情報はほとんどなく、ドキュメントの Tomcat Howtoの通りにしても何かうまくいきません。 そこで、比較的簡単な前者の方法で認証を行わせるセットアップの手順をここでは紹介します。

  1. SlideアプリケーションのWEB-INF/web.xmlをテキストエディタで編集し、 デフォルトではコメントになっている以下の部分のコメントを解除します。

        <security-constraint>
            <web-resource-collection>
                <web-resource-name>DAV resource</web-resource-name>
                <url-pattern>/*</url-pattern>
                <http-method>COPY</http-method>
                <http-method>DELETE</http-method>
                <http-method>GET</http-method>
                <http-method>HEAD</http-method>
                <http-method>LOCK</http-method>
                <http-method>MKCOL</http-method>
                <http-method>MOVE</http-method>
                <http-method>OPTIONS</http-method>
                <http-method>POST</http-method>
                <http-method>PROPFIND</http-method>
                <http-method>PROPPATCH</http-method>
                <http-method>PUT</http-method>
                <http-method>UNLOCK</http-method>
                <http-method>VERSION-CONTROL</http-method>
                <http-method>REPORT</http-method>
                <http-method>CHECKIN</http-method>
                <http-method>CHECKOUT</http-method>
                <http-method>UNCHECKOUT</http-method>
                <http-method>MKWORKSPACE</http-method>
                <http-method>UPDATE</http-method>
                <http-method>LABEL</http-method>
                <http-method>MERGE</http-method>
                <http-method>BASELINE-CONTROL</http-method>
                <http-method>MKACTIVITY</http-method>
                <http-method>ACL</http-method>
                <http-method>SEARCH</http-method>
                <http-method>BIND</http-method>
                <http-method>UNBIND</http-method>
                <http-method>REBIND</http-method>
            </web-resource-collection>
            <auth-constraint>
                <role-name>root</role-name>
                <role-name>guest</role-name>
                <role-name>user</role-name>
            </auth-constraint>
        </security-constraint>
        <login-config>
            <auth-method>BASIC</auth-method>
            <realm-name>Slide DAV Server</realm-name>
        </login-config>
        <security-role>
            <role-name>root</role-name>
        </security-role>
        <security-role>
            <role-name>guest</role-name>
        </security-role>
        <security-role>
            <role-name>user</role-name>
        </security-role>
    

    security-constraintタグの中に、 アクセスを許可するロールを列挙している部分が見えます。 ここでは初期設定の通りroot,guest,userロールのどれかを持つユーザが認証に通るようにしていますが、 必要に応じて書き換えます。
  2. Tomcatの設定ファイル $CATALINA_HOME/conf/server.xmlを編集し、 Webアプリケーションに対しBASIC認証を有効にします。 (別のページで触れている、FORM認証を使ってもOKです)

    <Context path="/slide" docBase="slide" debug="0"
             reloadable="true">
     <Logger className="org.apache.catalina.logger.FileLogger"
             prefix="slide." suffix=".txt" timestamp="true"/>
     <Realm className="org.apache.catalina.realm.MemoryRealm"
            pathname="conf/tomcat-users.xml"/>
    </Context>
    

  3. $CATALINA_HOME/conf/tomcat-users.xmlにユーザとパスワードを追加します。

      <user username="urano" password="urano238" roles="user,urano"/>
    

    ここで、web.xmlで許可したロールのどれかを含める必要があります。
  4. 最後にSlideアプリケーションのDomain.xmlを編集し、 サンプルユーザとして書かれている「john」を真似て、 ユーザの記述を追加します。このときのパスワードはtomcat-users.xmlのものにあわせます。

    <objectnode classname="slideroles.basic.UserRoleImpl" 
     uri="/users/urano">
      <revision>
        <property name="password">urano235</property>
      </revision>
    </objectnode>
    

    そして、読み書き操作を許可します。

    <permission action="/actions" subject="/users/urano"/>
    

以上で設定は終わりです。Tomcatを起動して、 Slideクライアントから接続しようとすると、今度は「UserName:」 というユーザ名とパスワード(上の例ではユーザ名urano、パスワードurano238) の入力を求めるプロンプトが現れます。 パスワードを間違えると、何も見えません。 正しくログインできると、get/putで読み/書き操作ができると思います。

Open Source Web Architecture Top

(first uploaded 2003/07/10 last updated 2004/06/02, URANO398 - KQ TAURA)

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル