CAS单点登录
来源:互联网 发布:js延时函数sleep 编辑:程序博客网 时间:2024/05/16 05:20
最近有兴趣搭建了一下CAS SSO单点登录环境。
一、服务端的配置。
首先我先开始按照网上的教程配置https验证,
http://www.kafeitu.me/sso/2010/11/05/sso-cas-full-course.html
带有域名的验证始终不成功,我所以就取消的https验证。
CAS取消https验证。先把cas-server-3.3.3-release.zip解压 在modules文件夹下找到 cas-server-webapp-3.3.3.war 放到一个tomcat下,启动tomcat,将自动解压缩war包,将项目文件夹名改为cas。
服务器端:
1.找到cas-servlet.xml,将 p:cookieSecure="true"改为 p:cookieSecure="false" 如下:
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator" p:cookieSecure="false" p:cookieMaxAge="-1" p:cookieName="CASTGC" p:cookiePath="/cas" />
2.找到cas-servlet.xml,将 p:cookieSecure="改为 p:cookieSecure="false",改完如下:
<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator" p:cookieSecure="false" p:cookieMaxAge="-1" p:cookieName="CASPRIVACY" p:cookiePath="/cas" />
3.找到deployerConfigContext.xml,在文件中找到“HttpBasedServiceCredentialsAuthenticationHandler”bean,然后添加:p:requireSecure="false",改完如下:
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" p:requireSecure="false" />
Tomcat可以不添加8443端口。
启动tomcat,用浏览器浏览 http://locahost:8080/cas。
出现
输入用户名:admin,密码:admin ,如果出现成功界面,说明cas服务器搭建成功,默认是用户名密码相同就是就登录成功。当然这只是简单验证,怎么进行数据库数据验证呢。
请参看上面的链接,讲的比较详细。记得往cas的lib里面添加相应的jdbc jar包 和cas-server-support-jdbc.jar。
二.客户端
把casclient.jar复制到工程TestPro /WEB-INF/lib下面。
web.xml的配置
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><filter> <filter-name>CAS Filter</filter-name> <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name> <param-value>http://localhost:8080/cas/login</param-value> </init-param> <init-param><param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name><param-value>http://localhost:8080/cas/serviceValidate</param-value> </init-param> <init-param><param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name><param-value>10.11.68.54:8080</param-value></init-param></filter><filter-mapping> <filter-name>CAS Filter</filter-name> <url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>welcome</servlet-name><servlet-class>welcome.WelcomePage</servlet-class></servlet><servlet-mapping><servlet-name>welcome</servlet-name><url-pattern>/WelcomePage</url-pattern></servlet-mapping></web-app>在src下面 welcome包里面WelcomePage.java
package welcome;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import edu.yale.its.tp.cas.client.filter.CASFilter;import edu.yale.its.tp.cas.client.filter.CASFilterRequestWrapper;public class WelcomePage extends HttpServlet {/** * */private static final long serialVersionUID = 6604894282088992512L;public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<html>");out.println("<head>");out.println("<title>Welcome to casTest2 sample System!</title>");out.println("</head>");out.println("<body>");out.println("<h1>Welcome to casTest1 sample System!</h1>");CASFilterRequestWrapper reqWrapper = new CASFilterRequestWrapper(request);out.println("<p>The logon user:" + reqWrapper.getRemoteUser() + "</p>");HttpSession session = request.getSession();out.println("<p>The logon user:" + session.getAttribute(CASFilter.CAS_FILTER_USER) + "</p>");out.println("<p>The logon user:" + session.getAttribute("edu.yale.its.tp.cas.client.filter.user") + "</p>");out.println("</body>");out.println("</html>");}}然后启动tomcat,在浏览中输入
http://localhost:8080/testPro/WelcomePage
你可以可以观看整个流程。
总结:该流程主要是非https验证的,个人感觉这么比较方便,https验证出了些问题,没有解决,主要是用域名输入显示不了,用localhost能显示,而我在系统hosts文件中已经加入了域名,并且多次尝试了证书认证还是不行。所以纠结了很久。
- cas实现单点登录
- CAS 单点登录原理
- cas 实现单点登录
- CAS 实现单点登录
- CAS单点登录
- CAS单点登录原理图
- CAS单点登录配置
- cas单点登录系统
- 单点登录 CAS分析
- cas实现单点登录
- cas 单点登录
- CAS单点登录
- cas单点登录
- CAS单点登录(SSO)
- CAS单点登录
- CAS单点登录
- cas单点登录系统
- CAS单点登录实例
- 在UINavigationController下的-(void)viewWillAppear:方法失效的解决办法
- Android ANR问题的解决
- RAD(Rational Application Develop,快速应用开发)模型
- net导入和导出
- jQuery 选择器
- CAS单点登录
- hibernate merge和saveOrUpdate方法
- A potentially dangerous Request.Path value was detected from the client 异常
- 把表的数据用CTS传送
- 我放弃你!因为你的不珍惜:伤感日志
- Oracle 的导出导出 帮助
- 【哈佛幸福课】改变 观后感
- Solr的Facet学习笔记与个人总结
- asp.net 使用html模板发送电子邮件