CAS配置全过程软件工具:1.cas-server-3.3.5-release.zip(CAS服务端)2.cas-client-3.1.10-release.zip(CAS客户端)3.apache-tomcat-7.0.40mons-dbcp-all-1.3-r699049.jar5.mysql-connector-java-5.1.18-bin.jar6.cas-server-jdbc-3.0.5-rc2.jar写在前面的话此配置是根据当前系统,当前的版本,仅供参考,如果有什么其他的问题可以一起研究。
第一节:先走通技术障碍第一步:环境部署1.在Tomcat 根目录下创建一个cas目录。
2.下载CAS服务器并解压,打开cas-server-3.3.5\modules,将cas-server-webapp-3.3.5.war复制到刚刚在Tomcat创建的cas目录下,并重命名为ROOT.war3.修改host文件(C:\Windows\System32\drivers\etc)添加127.0.0.1 注意:如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,可以不配置此项,下文有用到,可以用相应PC机的IP代替4.修改Tomcat文件下的server.xml(apache-tomcat-7.0.40\conf\server.xml)添加内容:<Host name="" appBase="cas"unpackWARs="true" autoDeploy="true"></Host>5.启动Tomcat服务,查看信息,(如果有报错,可以根据信息查找错误),打开浏览器,输入:8080如果出现以下界面,则CAS服务端配置成功。
注:这个是最简单的CAS服务,只要输入的用户名跟密码一样,就可以正常登陆,在我们实际开发中,这个验证因为跟数据库作比较,接下来,我们就配置数据库校验。
第二步:配置数据库验证1.打开deployerConfigContext.xml,在apache-tomcat-7.0.40\cas\ROOT\WEB-INF目录下,找到如下代码:<property name="authenticationHandlers">添加下面代码:<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"><!--这里sql属性是从user表中根据cas登陆名查找密码--><property name="sql" value="select password from user where username=?" /><property name="dataSource" ref="dataSource" /></bean>2.增加数据源dataSource,在deployerConfigContext.xml,(跟上面同一个文件)找到<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl" />,在下面添加如下代码:<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property><property name="url"><value>jdbc:mysql://127.0.0.1:3306/sso</value><!---根据自己的数据库URL地址--></property><property name="username"><value>root</value><!--根据自己的数据库用户名--></property><property name="password"><value></value><!--根据自己的数据库密码--></property></bean>3.数据库添加用户表及数据(这里用的Mysql),添加语句如下:create database if not exists `sso`;USE `sso`;DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (`id` int(11) NOT NULL default '0',`username` char(100) NOT NULL,`password` char(100) NOT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;insert into `user`(`id`,`username`,`password`) values (1,'admin','admin123');4.增加jar包,commons-dbcp-all-1.3-r699049.jar,cas-server-jdbc-3.0.5-rc2.jar,mysql-connector-java-5.1.18-bin.jar包拷贝到apache-tomcat-7.0.40\cas\ROOT\WEB-INF\lib目录下。
5.重启Tomcat,打开浏览器,输入:8080/,输入数据库里的用户名和密码,如果出现如下界面,则配置成功。
现在我们的CAS服务端已经配置好了,接下来,我们配置客户端第二节:配置自己的Web工程(客户端)1.在host文件下,添加如下代码:127.0.0.1 127.0.0.1 注意:这个网址最好不要用互联网已经存在的域名,否则你将无法访问该地址。
如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,可以不配置此项,下文有用到,,可以用相应PC机的IP代替1.在Tomcat 根目录下创建一个sso1,sso2目录。
如下如:5.在eclipse新建两个web工程,分别为sso1,sso2。
6.在自己的Web工程里加入cas-client-core.jar,commons-logging-1.1.jar,(解压cas-client-3.2.0-release.zip,在cas-client-3.2.0-release.zip\cas-client-3.2.0\modules,找到改JAR 包)。
7.分别加入到sso1,sso2工程的lib里。
7.修改sso1下的web.xml。
添加如下代码:<filter><filter-name>CAS Authentication Filter</filter-name><filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class><!-- CAS服务端登录地址--><init-param><param-name>casServerLoginUrl</param-name><param-value>:8080/login</param-value></init-param><!-- 当前网站域名--><init-param><param-name>serverName</param-name><param-value>:8080</param-value></init-param><init-param><param-name>renew</param-name><param-value>false</param-value></init-param><init-param><param-name>gateway</param-name><param-value>false</param-value></init-param></filter><filter><filter-name>CAS Validation Filter</filter-name><filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> <init-param><param-name>casServerUrlPrefix</param-name><param-value>:8080/</param-value></init-param><init-param><param-name>serverName</param-name><param-value>:8080</param-value></init-param><!--代理时启用--><!--<init-param><param-name>proxyCallbackUrl</param-name><param-value>https://localhost:8443/mywebapp/proxyCallback</param-value> </init-param><init-param><param-name>proxyReceptorUrl</param-name><param-value>/mywebapp/proxyCallback</param-value></init-param>--></filter><filter><filter-name>CAS HttpServletRequest Wrapper Filter</filter-name><filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class></filter><filter><filter-name>CAS Assertion Thread Local Filter</filter-name><filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class></filter><filter-mapping><filter-name>CAS Authentication Filter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>CAS Validation Filter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>CAS HttpServletRequest Wrapper Filter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>CAS Assertion Thread Local Filter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>CAS Validation Filter</filter-name><url-pattern>/proxyCallback</url-pattern></filter-mapping>8.修改sso2下的web.xml。