技术分享 CAS单点登录 服务端配置 查看内容

cas 入门之十一:cas 认证处理器-JDBC示例(下)

老高 | 发布于 2017-05-05 13:24| 浏览()| 评论() | 收藏() | 点赞() | 打印

jdbc认证配置示例

打开cas/WEB-INF/deployerConfigContext.xml,(可参见cas入门之二spring配置文件)在底部应当能够找到

<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

这个是cas 提供的默认认证处理器,只要用户名等于密码就可以通过认证。

可以用一个或多个jdbc认证方式去替换这个认证方式.

<bean id="SearchModeSearchDatabaseAuthenticationHandler"
      class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler">
	<property name="tableUsers">
		  <value>user_table</value>
	</property>
	<property name="fieldUser">
		<value>user_id</value>
	</property>
	<property name="fieldPassword">
		<value>password</value>
	</property>
	<property name="dataSource" ref="dataSource" />
</bean>

<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
	<property name="dataSource" ref="dataSource" />
	<property name="sql" value="select password from user_table where lower(user_id) =lower(?)" />
</bean>

注意这些bean,都是放置在authenticationHandlers的list里面,并且都没有提供passwordEncoder即进行明文进行比较.

而相应的dataSource bean则需要在外面配置即在

</list>
</property>
</bean>

外面进行配置.

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">  
    <property name="url" value="jdbc:oracle:thin:@192.168.1.100:1521:orcl" />  
    <property name="username" value="user" />  
    <property name="password" value="password" />  
    <property name="filters" value="stat" />  
    <property name="maxActive" value="20" />   
    <property name="initialSize" value="1" />  
    <property name="maxWait" value="60000" />  
    <property name="minIdle" value="1" />  
    <property name="timeBetweenEvictionRunsMillis" value="3000" />  
    <property name="minEvictableIdleTimeMillis" value="300000" />  
    <property name="validationQuery" value="SELECT 'x' from dual" />  
    <property name="testWhileIdle" value="true" />  
    <property name="testOnBorrow" value="false" />  
    <property name="testOnReturn" value="false" />  
    <property name="poolPreparedStatements" value="true" />  
    <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />  
</bean>

关于datasource的配置,则相应的数据库驱动jar,数据库连接池jar 则自行填加,在此不列举。

这样就完成了jdbc的认证处理器配置。为了更好的提高性能可参考cas 入门之四:认证管理器,如何更好进行认证处理器与认证转换的配置,来提高系统性能。

发表评论(对文章涉及的知识点还有疑问,可以在这里留言,老高看到后会及时回复的。)

表情