我正在尝试将我的 Ja-sig CAS 服务器(在 Tomcat7 上运行的 v3.5)连接到 MySQL 数据库以进行用户身份验证。我基本上在数据库中有一个“用户”表,用于存储我希望 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 中使用简单的身份验证处理程序时,我就可以进行部署了。
从我目前的网络研究来看,这方面的文档似乎很少/很差。如果有人有任何好的资源,他们也可以推荐,将不胜感激。