ユーザー認証のために、Ja-sig CAS サーバー (Tomcat7 で実行されている v3.5) を MySQL データベースに接続しようとしています。私は基本的に、データベースに「users」というテーブルを持っており、CAS にチェックさせたいユーザー名とパスワードのペアを保存しています。ただし、現在の構成を展開することさえ困難です。
これは、データベース接続に関連する pom.xml からの抜粋です。
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${cas.version}</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.22-bin</version>
<scope>provided</scope>
</dependency>
ここでは、WEB-INF/deployerConfigContext.xml でデータベース接続をセットアップしようとしています。
<bean
class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler">
<property name="tableUsers">
<value>users</value>
</property>
<property name="fieldUser">
<value>username</value>
</property>
<property name="fieldPassword">
<value>password</value>
</property>
<property name="passwordEncoder">
<bean
class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg value="MD5" />
</bean>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="datasource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/cas_db</value>
</property>
<property name="username">
<value>cas_server</value>
</property>
<property name="password">
<value>pass</value>
</property>
</bean>
Maven では問題なくビルドできますが、Tomcat でデプロイしようとすると機能しません。どの tomcat ログにも、特に有益なものは見つかりませんでした。「commons-dbcp」に問題があるのではないかと考えています。それをコメントアウトして deployerConfigContext.xml で単純な認証ハンドラーを使用すると、デプロイできるからです。
私の現在のウェブ調査から、これに関する文書はほとんど/貧弱であるようです。誰かが推奨できる優れたリソースがあれば、それは大歓迎です。