jetty側の設定
まず認証レルムの設定ファイルを用意する。
用意すると言ってもデフォルトで$JETTY_HOME/etc/realm.propertiesが存在するのでこちらを利用する。
下記のフォーマットで記述する。
username: password[,rolename ...]暗号化する場合は種類に応じてOBF:、MD5:、CRYPT:のプレフィックスを付与する。
暗号化する場合は下記のようにして生成する。
$ java -cp lib/jetty-xxx.jar:lib/jetty-util-xxx.jar org.mortbay.jetty.security.Password ユーザー名 パスワードしかし、なぜか$JETTY_HOME/lib内にorg.mortbay.jetty.security.Passwordクラスが見つからなかったので
下記2つをダウンロードして生成する。
$ cd <workディレクトリ> $ wget http://www.java2s.com/Code/JarDownload/jetty-core-6.1.14.jar.zip $ wget http://www.java2s.com/Code/JarDownload/jetty-util-6.1.18.jar.zip $ unzip jetty-core-6.1.14.jar.zip $ unzip jetty-util-6.1.18.jar.zip $ java -cp jetty-core-6.1.14.jar:jetty-util-6.1.18.jar org.mortbay.jetty.security.Password jetty password password OBF:1v2j1uum1xtv1zej1zer1xtn1uvk1v1v MD5:5f4dcc3b5aa765d61d8327deb882cf99 CRYPT:je5/ATIGzeDQw
続いてjetty.xmlに認証レルムを使用する設定を追記する。
- <Configure id="Server" class="org.eclipse.jetty.server.Server">
- …
- <Call name="addBean">
- <Arg>
- <New class="org.eclipse.jetty.security.HashLoginService">
- <Set name="name">User Realm</Set>
- <Set name="config">
- <!-- 上記で用意した認証レルムの設定ファイルを指定 -->
- <SystemProperty name="jetty.home" default="."/>/etc/realm.properties
- </Set>
- <Set name="refreshInterval">0</Set>
- </New>
- </Arg>
- </Call>
- …
- </Configure>
- <Configure class="org.eclipse.jetty.webapp.WebAppContext">
- <Set name="contextPath">/jetty</Set>
- <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/jetty</Set>
- …
- <Get name="securityHandler">
- <Set name="loginService">
- <New class="org.eclipse.jetty.security.HashLoginService">
- <Set name="name">User Realm</Set>
- <Set name="config">
- <SystemProperty name="jetty.home" default="."/>/etc/realm.properties
- </Set>
- </New>
- </Set>
- </Get>
- …
- </Configure>
Webアプリケーション側の設定
web.xmlにBASIC認証用の設定を追記する。
- <web-app…
- …
- <security-constraint>
- <web-resource-collection>
- <web-resource-name>Authentication of BASIC</web-resource-name>
- <url-pattern>/*</url-pattern>
- </web-resource-collection>
- <auth-constraint>
- <role-name>admin</role-name>
- </auth-constraint>
- </security-constraint>
- <login-config>
- <auth-method>BASIC</auth-method>
- <realm-name>User Realm</realm-name>
- </login-config>
- <security-role>
- <role-name>admin</role-name>
- </security-role>
- …
- </web-app>
0 件のコメント:
コメントを投稿