数据库
首页 > 数据库> > 在Ja-sig CAS中使用MySQL数据库进行身份验证

在Ja-sig CAS中使用MySQL数据库进行身份验证

作者:互联网

我正在尝试将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中使用简单的身份验证处理程序时,我便能够进行部署.

从我目前的网络研究来看,这方面的文献很少/很少.如果任何人有任何好的资源,他们也可以推荐,我们将不胜感激.

解决方法:

我终于在tomcat日志localhost.YYYY-MM-DD.log中发现了一些错误.事实证明,我需要添加commons-pool:

<dependency>
   <groupId>commons-pool</groupId>
   <artifactId>commons-pool</artifactId>
   <version>1.6</version>
   <scope>provided</scope>
</dependency>

commons-dbcp依赖于哪个.用Maven安装它消除了我得到的缺少类异常.

我的下一个问题是我在deployerConfigContext.xml的authenticationHandlers列表中错误地定义了数据源bean,这导致类型转换异常.将bean从list标记中移出就可以了.

标签:jdbc,apache-commons-dbcp,cas,mysql,jasig
来源: https://codeday.me/bug/20191127/2075045.html