接着上次的说,之前配置的cas只能进行简单的登陆验证,默认情况是用户名密码一直就能登陆成功,这样肯定是不符合我们的要求的。
一般来说肯定是要读取数据库中的数据的,那么cas本身也有这样的功能,只不过需要我们配置一下。
首先找到cas/WEB-INF/目录下的deployerConfigContext.xml文件,打开之后,按照下面来修改。
在<bean id="authenticationManager"class="org.jasig.cas.authentication.AuthenticationManagerImpl">这个节点下,添加数据库的数据源信息
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=数据库名字" />
<property name="username" value="sa" />
<property name="password" value="123456" />
</bean>
然后在找到<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswo这个的意思就是简单测试用户名密码的验证方式,我们要改为数据库的验证方式,直接把这个节点删掉,改为
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select 密码 from 用户表 where 用户名=?" />
<property name="dataSource" ref="dataSource" />
</bean>
这样就可以读取数据库中的用户名密码了。