<bean id="authenticationManager"
class="org.jasig.cas.authentication.AuthenticationManagerImpl">
<property name="credentialsToPrincipalResolvers">
<list>
<bean
class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" />
<bean
class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" />
</list>
</property>
<property name="authenticationHandlers">
<list>
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient" />
<!-- 第一种认证方式,用户输入的账户密码需要和连接数据库的帐号密码一致 -->
<!-- <bean class="org.jasig.cas.adaptors.jdbc.BindModeSearchDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"/>
</bean>
-->
<!-- 第二种认证方式,根据用户输入的帐号密码,用sql去数据库查询,查到密码,看是否一样 -->
<!-- <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"/>
<property name="passwordEncoder" ref="passwordEncoder"/>
<property name="sql" value="select password from emp where id = ?"/>
</bean>
-->
<!-- 第三种认证方式,根据用户输入的帐号密码,用sql去数据库查询,查和这两个字段一样的数据的个数,大于0返回true -->
<bean class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"/>
<property name="passwordEncoder" ref="passwordEncoder"/>
<property name="tableUsers" value="emp"/> <!-- 指定从哪个用户表查询用户信息 -->
<property name="fieldUser" value="id"/> <!-- 指定用户名在用户表对应的字段名 -->
<property name="fieldPassword" value="password"/> <!-- 指定密码在用户表对应的字段名 -->
</bean>
</list>
</property>
</bean>
<bean id="passwordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg value="MD5"/><!-- 加密算法 -->
</bean>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/exam?characterEncoding=utf-8"/>
<property name="password" value="root"/>
<property name="username" value="root"/>
</bean>
class="org.jasig.cas.authentication.AuthenticationManagerImpl">
<property name="credentialsToPrincipalResolvers">
<list>
<bean
class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" />
<bean
class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" />
</list>
</property>
<property name="authenticationHandlers">
<list>
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient" />
<!-- 第一种认证方式,用户输入的账户密码需要和连接数据库的帐号密码一致 -->
<!-- <bean class="org.jasig.cas.adaptors.jdbc.BindModeSearchDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"/>
</bean>
-->
<!-- 第二种认证方式,根据用户输入的帐号密码,用sql去数据库查询,查到密码,看是否一样 -->
<!-- <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"/>
<property name="passwordEncoder" ref="passwordEncoder"/>
<property name="sql" value="select password from emp where id = ?"/>
</bean>
-->
<!-- 第三种认证方式,根据用户输入的帐号密码,用sql去数据库查询,查和这两个字段一样的数据的个数,大于0返回true -->
<bean class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"/>
<property name="passwordEncoder" ref="passwordEncoder"/>
<property name="tableUsers" value="emp"/> <!-- 指定从哪个用户表查询用户信息 -->
<property name="fieldUser" value="id"/> <!-- 指定用户名在用户表对应的字段名 -->
<property name="fieldPassword" value="password"/> <!-- 指定密码在用户表对应的字段名 -->
</bean>
</list>
</property>
</bean>
<bean id="passwordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg value="MD5"/><!-- 加密算法 -->
</bean>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/exam?characterEncoding=utf-8"/>
<property name="password" value="root"/>
<property name="username" value="root"/>
</bean>