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 入门之四:认证管理器,如何更好进行认证处理器与认证转换的配置,来提高系统性能。
打开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 入门之四:认证管理器,如何更好进行认证处理器与认证转换的配置,来提高系统性能。