ユーザ情報は既存のユーザ管理アプリのDBを使用する。
おっきく分けて3つ。
- Grails Spring Security Pluginでユーザ管理アプリを作る
- CASサーバの構築
- Grails Spring Security PluginでCASクライアント
3つめは次回。
ということで、まずは「Grails Spring Security Pluginでユーザ管理アプリを作る」は本題ではないのでちゃちゃっと作る。
grails create-app ums
cd ums
grails install-plugin acegi
grails create-auth-domains
grails generate-manager
データベースはpostgresql 8.3。
データベースユーザは"sa"でパスワードなし。
データベースはlocalohst:5432:umsdb
ユーザはPersonのまま(テーブル:person、カラムはusername、passwd、enabledなど)
次に、今回のメイン「CASサーバの構築」。やることは
- ダウンロード、展開
- ファイルを2つ編集
- ビルドして配備
http://www.jasig.org/cas/download
今回使うのはCAS Server 3.3.4 Final。
cas-server-3.3.4-release.zipを落として展開する。
で、cas-server-3.3.4/cas-server-webapp/pom.xmlを編集、61行目のldapをjdbcにして、ついでにJDBCドライバとデータソース用のライブラリも追加しておく。
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>8.3-603.jdbc3</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2</version>
</dependency>
cas-server-3.3.4/cas-server-webapp/src/main/webapp/WEB-INF/deployerConfigContext.xmlを編集、データソースとユーザテーブルの情報を設定する。
データソースのbeanを定義して
92行目のSimpleTestUsernamePasswordAuthenticationHandlerをSearchModeSearchDatabaseAuthenticationHandlerに差し替える。ユーザテーブル、ユーザIDカラム、パスワードカラム、パスワードのエンコード、データソースを設定してあげる。
<bean class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler">
<property name="tableUsers"><value>person</value></property>
<property name="fieldUser"><value>username</value></property>
<property name="fieldPassword"><value>passwd</value></property>
<property name="dataSource" ref="dataSource"/>
<property name="passwordEncoder">
<bean class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg value="SHA1" />
</bean>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>org.postgresql.Driver</value>
</property>
<property name="url">
<value>jdbc:postgresql:umsdb</value>
</property>
<property name="username"><value>sa</value></property>
<property name="password"><value></value></property>
</bean>
maven2でビルドする。
cd cas-server-3.3.4/cas-server-webapp/
mvn package
最後にTomcatに配備してhttp://localhost:8080/cas/login/にアクセスして確認しておk。
これでCASサーバの準備ができたので、次回はCASクライアント編。
JDBCTicketRegistryについても調査済みなので次々回あたりでまとめる。
参考にしたページ:
JDBC - CAS User Manual - JA-SIG Wiki
0 件のコメント:
コメントを投稿