CAS4.0关联mysql数据库

步骤如下

一:

在cas-4.0.0\cas-server-webapp\pom.xml中添加依赖后(如下方所示),打开cmd在cas-4.0.0\cas-server-webapp文件夹下运行mvn clean package,然后将cas-4.0.0\cas-server-webapp\target下的cas.war包部署至tomcat

Xml代码  

  1. <dependency>
  2. <groupId>org.jasig.cas</groupId>
  3. <artifactId>cas-server-support-jdbc</artifactId>
  4. <version>${project.version}</version>
  5. <type>jar</type>
  6. </dependency>
  7. <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
  8. <dependency>
  9. <groupId>commons-dbcp</groupId>
  10. <artifactId>commons-dbcp</artifactId>
  11. <version>1.4</version>
  12. </dependency>
  13. <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
  14. <dependency>
  15. <groupId>mysql</groupId>
  16. <artifactId>mysql-connector-java</artifactId>
  17. <version>5.1.6</version>
  18. </dependency>

二:

本地创建数据库,并新建表 cas_user,创建语句如下载

Sql代码  

  1. create table cas_user (
  2. id bigint not null auto_increment,
  3. email varchar(255),
  4. username varchar(255) not null unique,
  5. name varchar(255),
  6. password varchar(255),
  7. primary key (id)
  8. ) ENGINE=InnoDB;

三:

配置数据库相关文件,在tomcat-for-cas\webapps\cas\WEB-INF\deployerConfigContext.xml中配置对应的datasource,数据库地址,用户名,密码,以及查询用户的sql。需要注意的是,如果是自己建的表,要把相应的字段名,数据库名替换掉,以及,不要忘记注释掉默认用户名密码的配置(casuser/Mellon)。下载以下配置可以全拷贝

Xml代码  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed to Jasig under one or more contributor license
  4. agreements. See the NOTICE file distributed with this work
  5. for additional information regarding copyright ownership.
  6. Jasig licenses this file to you under the Apache License,
  7. Version 2.0 (the "License"); you may not use this file
  8. except in compliance with the License.  You may obtain a
  9. copy of the License at the following location:
  10. http://www.apache.org/licenses/LICENSE-2.0
  11. Unless required by applicable law or agreed to in writing,
  12. software distributed under the License is distributed on an
  13. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  14. KIND, either express or implied.  See the License for the
  15. specific language governing permissions and limitations
  16. under the License.
  17. -->
  18. <!--
  19. | deployerConfigContext.xml centralizes into one file some of the declarative configuration that
  20. | all CAS deployers will need to modify.
  21. |
  22. | This file declares some of the Spring-managed JavaBeans that make up a CAS deployment.
  23. | The beans declared in this file are instantiated at context initialization time by the Spring
  24. | ContextLoaderListener declared in web.xml.  It finds this file because this
  25. | file is among those declared in the context parameter "contextConfigLocation".
  26. |
  27. | By far the most common change you will need to make in this file is to change the last bean
  28. | declaration to replace the default authentication handler with
  29. | one implementing your approach for authenticating usernames and passwords.
  30. +-->
  31. <beans xmlns="http://www.springframework.org/schema/beans"
  32. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  33. xmlns:p="http://www.springframework.org/schema/p"
  34. xmlns:c="http://www.springframework.org/schema/c"
  35. xmlns:tx="http://www.springframework.org/schema/tx"
  36. xmlns:util="http://www.springframework.org/schema/util"
  37. xmlns:sec="http://www.springframework.org/schema/security"
  38. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
  39. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
  40. http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd
  41. http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
  42. <!--
  43. | The authentication manager defines security policy for authentication by specifying at a minimum
  44. | the authentication handlers that will be used to authenticate credential. While the AuthenticationManager
  45. | interface supports plugging in another implementation, the default PolicyBasedAuthenticationManager should
  46. | be sufficient in most cases.
  47. +-->  下载
  48. <bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager">
  49. <constructor-arg>
  50. <map>
  51. <!--
  52. | IMPORTANT
  53. | Every handler requires a unique name.
  54. | If more than one instance of the same handler class is configured, you must explicitly
  55. | set its name to something other than its default name (typically the simple class name).
  56. -->
  57. <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />
  58. <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />
  59. </map>
  60. </constructor-arg>
  61. <!-- Uncomment the metadata populator to allow clearpass to capture and cache the password
  62. This switch effectively will turn on clearpass.
  63. <property name="authenticationMetaDataPopulators">
  64. <util:list>
  65. <bean class="org.jasig.cas.extension.clearpass.CacheCredentialsMetaDataPopulator"
  66. c:credentialCache-ref="encryptedMap" />
  67. </util:list>
  68. </property>
  69. -->
  70. <!--
  71. | Defines the security policy around authentication. Some alternative policies that ship with CAS:
  72. |
  73. | * NotPreventedAuthenticationPolicy - all credential must either pass or fail authentication
  74. | * AllAuthenticationPolicy - all presented credential must be authenticated successfully
  75. | * RequiredHandlerAuthenticationPolicy - specifies a handler that must authenticate its credential to pass
  76. -->
  77. <property name="authenticationPolicy">
  78. <bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy" />
  79. </property>
  80. </bean>
  81. <!-- Required for proxy ticket mechanism. -->
  82. <bean id="proxyAuthenticationHandler"
  83. class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
  84. p:httpClient-ref="httpClient" p:requireSecure="true" />
  85. <!--
  86. | TODO: Replace this component with one suitable for your enviroment.
  87. |
  88. | This component provides authentication for the kind of credential used in your environment. In most cases
  89. | credential is a username/password pair that lives in a system of record like an LDAP directory.
  90. | The most common authentication handler beans:
  91. |  下载
  92. | * org.jasig.cas.authentication.LdapAuthenticationHandler
  93. | * org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler
  94. | * org.jasig.cas.adaptors.x509.authentication.handler.support.X509CredentialsAuthenticationHandler
  95. | * org.jasig.cas.support.spnego.authentication.handler.support.JCIFSSpnegoAuthenticationHandler
  96. -->
  97. <bean id="primaryAuthenticationHandler"
  98. class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
  99. <property name="dataSource" ref="dataSource"/>
  100. <property name="sql" value="select password from cas_user where username = ?"/>
  101. </bean>
  102. <!-- Required for proxy ticket mechanism -->
  103. <bean id="proxyPrincipalResolver"
  104. class="org.jasig.cas.authentication.principal.BasicPrincipalResolver" />
  105. <!--
  106. | Resolves a principal from a credential using an attribute repository that is configured to resolve
  107. | against a deployer-specific store (e.g. LDAP).
  108. -->
  109. <bean id="primaryPrincipalResolver"
  110. class="org.jasig.cas.authentication.principal.PersonDirectoryPrincipalResolver" >
  111. <property name="attributeRepository" ref="selfAttributeRepository" />
  112. </bean>
  113. <!--
  114. Bean that defines the attributes that a service may return.  This example uses the Stub/Mock version.  A real implementation
  115. may go against a database or LDAP server.  The id should remain "attributeRepository" though.
  116. +-->
  117. <bean id="attributeRepository" class="org.jasig.services.persondir.support.StubPersonAttributeDao"
  118. p:backingMap-ref="attrRepoBackingMap" />
  119. <util:map id="attrRepoBackingMap">
  120. <entry key="uid" value="uid" />
  121. <entry key="eduPersonAffiliation" value="eduPersonAffiliation" />
  122. <entry key="groupMembership" value="groupMembership" />
  123. </util:map>
  124. <!--
  125. Sample, in-memory data store for the ServiceRegistry. A real implementation
  126. would probably want to replace this with the JPA-backed ServiceRegistry DAO
  127. The name of this bean should remain "serviceRegistryDao".
  128. +-->
  129. <bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl"
  130. p:registeredServices-ref="registeredServicesList" />
  131. <util:list id="registeredServicesList">
  132. <bean class="org.jasig.cas.services.RegexRegisteredService"
  133. p:id="0" p:name="HTTP and IMAP" p:description="Allows HTTP(S) and IMAP(S) protocols"
  134. p:serviceId="^(https?|imaps?)://.*" p:evaluationOrder="10000001" />
  135. <!--
  136. Use the following definition instead of the above to further restrict access
  137. to services within your domain (including sub domains).
  138. Note that example.com must be replaced with the domain you wish to permit.
  139. This example also demonstrates the configuration of an attribute filter
  140. that only allows for attributes whose length is 3.
  141. -->
  142. <!--
  143. <bean class="org.jasig.cas.services.RegexRegisteredService">
  144. <property name="id" value="1" />
  145. <property name="name" value="HTTP and IMAP on example.com" />
  146. <property name="description" value="Allows HTTP(S) and IMAP(S) protocols on example.com" />
  147. <property name="serviceId" value="^(https?|imaps?)://([A-Za-z0-9_-]+\.)*example\.com/.*" />
  148. <property name="evaluationOrder" value="0" />
  149. <property name="attributeFilter">
  150. <bean class="org.jasig.cas.services.support.RegisteredServiceRegexAttributeFilter" c:regex="^\w{3}$" />
  151. </property>
  152. </bean>
  153. -->
  154. </util:list>
  155. <bean id="auditTrailManager" class="com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager" />
  156. <bean id="healthCheckMonitor" class="org.jasig.cas.monitor.HealthCheckMonitor" p:monitors-ref="monitorsList" />
  157. 下载
  158. <util:list id="monitorsList">
  159. <bean class="org.jasig.cas.monitor.MemoryMonitor" p:freeMemoryWarnThreshold="10" />
  160. <!--
  161. NOTE
  162. The following ticket registries support SessionMonitor:
  163. * DefaultTicketRegistry
  164. * JpaTicketRegistry
  165. Remove this monitor if you use an unsupported registry.
  166. -->
  167. <bean class="org.jasig.cas.monitor.SessionMonitor"
  168. p:ticketRegistry-ref="ticketRegistry"
  169. p:serviceTicketCountWarnThreshold="5000"
  170. p:sessionCountWarnThreshold="100000" />
  171. </util:list>
  172. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  173. <property name="driverClassName">
  174. <value>com.mysql.jdbc.Driver</value>
  175. </property>
  176. <property name="url">
  177. <value>jdbc:mysql://localhost:3306/test</value>
  178. </property>
  179. <property name="username">
  180. <value>root</value>
  181. </property>
  182. <property name="password">
  183. <value>123456</value>
  184. </property>
  185. </bean>
  186. <bean id="selfAttributeRepository"
  187. class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao">
  188. <constructor-arg index="0" ref="dataSource" />
  189. <constructor-arg index="1"
  190. value="select username,password from cas_user where {0}" />
  191. <!-- 组装sql用的查询条件属性 -->
  192. <property name="queryAttributeMapping">
  193. <map>
  194. <!-- key必须是uername而且是小写否则会导致取不到用户的其它信息,value对应数据库用户名字段,系统会自己匹配 -->
  195. <entry key="username" value="username" />
  196. <entry key="password" value="password" />
  197. </map>
  198. </property>
  199. <property name="resultAttributeMapping">
  200. <map>
  201. <!-- key为对应的数据库字段名称,value为提供给客户端获取的属性名字,系统会自动填充值 -->
  202. <entry key="username" value="username"></entry>
  203. <entry key="password" value="password"></entry>
  204. </map>
  205. </property>
  206. </bean>
  207. </beans>
时间: 2024-10-10 22:06:42

CAS4.0关联mysql数据库的相关文章

zabbix3.0监控mysql数据库

根据Percona官方提供的方案来做对MySQL数据库的监控,具体请参考:https://www.percona.com/doc/percona-monitoring-plugins/1.1/zabbix/index.html 1.首先安装Percona源 # yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm 2.安装zabbix A

vc6.0运用mysql数据库中的编码所导致的乱码问题(接收和输出的编码必须要一致)

[编译中遇见的问题]       ①在用vc 6.0去调用MySQL中的数据时,出现中文乱码       ②不明白mysql中的码制 [开始解决问题]      ①打开mysql控制台        ②开始展示自己        ③打开vc 6.0(配置mysql环境在这里我就不哆嗦了) 走起.....在vc 6.0中复制下列代码,进行连接mysql和调用代码如下: #include <Windows.h>#include <stdio.h>#include <stdlib.

PHP7.0连接MYSQL数据库代码

1.<?php $mysql_server_name='localhost'; //改成自己的mysql数据库服务器 $mysql_username="root"; //改成自己的mysql数据库用户名 $mysql_password="qmtg"; //改成自己的mysql数据库密码 $mysql_database="testmydatabase"; //改成自己的mysql数据库名 $conn=new mysqli($mysql_ser

在VisualStadio2015上使用EF6.0建立MySql数据库

1.新建工程 2.建立类的文件夹DAL 3.建立相关类 [Student类] using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ETTest3{ public class Student { public int Id { get; set; } public string LastName { get;

【SSO单点系列】(7):CAS4.0 SERVER通过数据库方式认证用户

在前几篇中有简单介绍服务端的认证方式,默认的是直接在 deployerConfigContext.xml 文件中 一个叫做 primaryAuthenticationHandler 的bean中配置.不过这只支持一个账号,而且是固定的,这有非常大的局限性,在现实系统中是肯定不能用这样的方式的. 现在的应用系统一般都是通过读取数据库的方式验证用户名.密码是否正确,进而进行认证的.因此在这一篇文章中将会介绍,怎么把服务端的默认认证方式改造成数据库验证的方式,以此满足系统的基本需求. 1.增加数据源配

Asp.net Core 2.0连接mysql数据库一系列错误问题

mysql:最新版 一定是最新版,不然各种报错 Install-Package Pomelo.EntityFrameworkCore.MySql 2.0.0-rtm-10057 02 03 第四部 最后

使用 Navicat 8.0 管理mysql数据库(导出导入数据)

http://dxcns.blog.51cto.com/1426423/367105 使用Navicat For MySql 将mysql中的数据导出,包括数据库表创建脚本和数据 (1)数据的导出:右键--->“转储sql文件” 至此,已完成了数据的导出操作. (2)数据的导入:先创建好数据库,这时数据库是空的,接下来我们进行数据导入:选择需要导入数据的数据库名,右键 > 运行批次任务文件 选择刚才我们导出的SQL文件 好,下面我们点开始, 待执行完后,就完成数据导入了

Python3.0 操作MySQL数据库执行查询语句

# coding: utf-8 import pymysql class MysqldbHelper(object): def __init__(self, host="192.168.1.243", username="devlop", password="devlop", port=3306, database='zl_dcms', charset='utf8'): self.host = host self.username = usern

04.Http协议之GET请求与访问MySQL数据库

转载请标明出处:http://blog.csdn.net/u012637501 一.GET请求(2步) 1.修改实现客户端与服务器通信的LoginToSever.java文件 注释"public String doPost(String name,String psd)  "方法(POST请求方法实体),实现一个"public String doGet(String name,String psd)"(GET方法实体). ........... /*doGet方法