正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得。
1.可在同一应用服务器内共享方法:设置cookie.setPath("/");
本机tomcat/webapp下面有两个应用:cas和webapp_b,
1)原来在cas下面设置的cookie,在webapp_b下面获取不到,path默认是产生cookie的应用的路径。
2)若在cas下面设置cookie的时候,增加一条cookie.setPath("/");或者cookie.setPath("/webapp_b/");就可以在webapp_b下面获取到cas设置的cookie了。
3)此处的参数,是相对于应用服务器存放应用的文件夹的根目录而言的(比如tomcat下面的webapp),因此cookie.setPath("/");之后,可以在webapp文件夹下的所有应用共享cookie,而cookie.setPath("/webapp_b/");是指cas应用设置的cookie只能在webapp_b应用下的获得,即便是产生这个cookie的cas应用也不可以。
4)设置cookie.setPath("/webapp_b/jsp")或者cookie.setPath("/webapp_b/jsp/")的时候,只有在webapp_b/jsp下面可以获得cookie,在webapp_b下面但是在jsp文件夹外的都不能获得cookie。
5)设置cookie.setPath("/webapp_b");,是指在webapp_b下面才可以使用cookie,这样就不可以在产生cookie的应用cas下面获取cookie了
6)有多条cookie.setPath("XXX");语句的时候,起作用的以最后一条为准。
6)设置多个path的方法???
2.跨域共享cookie的方法:设置cookie.setDomain(".jszx.com");
A机所在的域:home.langchao.com,A有应用cas
B机所在的域:jszx.com,B有应用webapp_b
1)在cas下面设置cookie的时候,增加cookie.setDomain(".jszx.com");,这样在webapp_b下面就可以取到cookie。
2)这个参数必须以“.”开始。
3)输入url访问webapp_b的时候,必须输入域名才能解析。比如说在A机器输入:http://lc-bsp.jszx.com:8080/webapp_b,可以获取cas在客户端设置的cookie,而B机器访问本机的应用,输入:http://localhost:8080/webapp_b则不可以获得cookie。
4)设置了cookie.setDomain(".jszx.com");,还可以在默认的home.langchao.com下面共享。
5)设置多个域的方法???
最近的工作经常用到cookie,看了一些资料,虽然原来依赖cookie比较多的方案已经改成现在这个了,但是当时看得一些东西还是最好记下来,免得过些天就一干二净了,怪可惜的。老梁说过这样的文字最好不要是纯文本的,说得是。本来就已经很抽象了,最好弄点图表,就算用123列出来也好
正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得。
1.可在同一应用服务器内共享方法:设置cookie.setPath("/");
本机tomcat/webapp下面有两个应用:cas和webapp_b,
1)原来在cas下面设置的cookie,在webapp_b下面获取不到,path默认是产生cookie的应用的路径。
2)若在cas下面设置cookie的时候,增加一条cookie.setPath("/");或者cookie.setPath("/webapp_b/");就可以在webapp_b下面获取到cas设置的cookie了。
3)此处的参数,是相对于应用服务器存放应用的文件夹的根目录而言的(比如tomcat下面的webapp),因此cookie.setPath("/");之后,可以在webapp文件夹下的所有应用共享cookie,而cookie.setPath("/webapp_b/");是指cas应用设置的cookie只能在webapp_b应用下的获得,即便是产生这个cookie的cas应用也不可以。
4)设置cookie.setPath("/webapp_b/jsp")或者cookie.setPath("/webapp_b/jsp/")的时候,只有在webapp_b/jsp下面可以获得cookie,在webapp_b下面但是在jsp文件夹外的都不能获得cookie。
5)设置cookie.setPath("/webapp_b");,是指在webapp_b下面才可以使用cookie,这样就不可以在产生cookie的应用cas下面获取cookie了
6)有多条cookie.setPath("XXX");语句的时候,起作用的以最后一条为准。
6)设置多个path的方法???
2.跨域共享cookie的方法:设置cookie.setDomain(".jszx.com");
A机所在的域:home.langchao.com,A有应用cas
B机所在的域:jszx.com,B有应用webapp_b
1)在cas下面设置cookie的时候,增加cookie.setDomain(".jszx.com");,这样在webapp_b下面就可以取到cookie。
2)这个参数必须以“.”开始。
3)输入url访问webapp_b的时候,必须输入域名才能解析。比如说在A机器输入:http://lc-bsp.jszx.com:8080/webapp_b,可以获取cas在客户端设置的cookie,而B机器访问本机的应用,输入:http://localhost:8080/webapp_b则不可以获得cookie。
4)设置了cookie.setDomain(".jszx.com");,还可以在默认的home.langchao.com下面共享。
5)设置多个域的方法???
最近的工作经常用到cookie,看了一些资料,虽然原来依赖cookie比较多的方案已经改成现在这个了,但是当时看得一些东西还是最好记下来,免得过些天就一干二净了,怪可惜的。老梁说过这样的文字最好不要是纯文本的,说得是。本来就已经很抽象了,最好弄点图表,就算用123列出来也好
分享到:
相关推荐
在这个例子中,我们基于Spring MVC、Maven、WebService和Memcached来实现一个功能完善的单点登录系统,同时支持完全跨域和单点退出。 1. **Spring MVC**: Spring MVC是Spring框架的一个模块,主要用于构建Web应用...
4. **Cookie管理**:为了实现跨域,通常会使用Cookie来存储票据。浏览器的同源策略限制了不同域名之间的数据共享,但可以通过设置Cookie的`domain`属性使其在多个关联域名间生效。 5. **协议实现**:常见的SSO协议...
开发者可以使用CAS Server搭建认证中心,然后在各个应用中配置为CAS客户端,实现跨域单点登录。 4. **跨域问题**:在实现SSO时,由于浏览器的同源策略限制,不同域名下的应用需要处理跨域请求。这可以通过设置CORS...
4. **会话管理**:利用Shiro的会话管理功能,实现跨域会话同步。 **Cas-shiro-demo-app** `cas-shiro-demo-app` 是一个包含CAS和Shiro整合的示例应用,用于演示如何在实际项目中实现单点登录。这个示例可能包含...
当用户在CAS服务器上登录后,其他应用可以通过CAS协议验证用户凭证,实现跨域登录。 4. **JWT(JSON Web Token)**: JWT是一种轻量级的身份验证和授权机制,它将用户信息编码为一个字符串,既安全又方便传输。在...
为实现跨域SSO,通常采用的方式是在认证服务器设置一个共享的Cookie,或者使用JSONP、CORS等技术来绕过同源策略。 4. 示例项目WebSSOAuth与WebSSODemo: "WebSSOAuth"可能是一个包含认证逻辑的服务端项目,它负责...
Apereo CAS是一个开源的身份验证管理服务,广泛用于教育、研究和商业机构,以实现单点登录(SSO,Single Sign-On)功能。这个压缩包包含两个关键的jar文件,它们是cors-filter-1.7.0.wso2v1.jar和java-property-...
最近在做一个后台管理系统,前端是用时下火热的vue.js,后台是基于springboot...我面临的第一个问题是跨域,浏览器控制台直接报CORS,以我多年开发经验,我果断在后台配置了跨域配置,代码如下: @Configuration publi
- **P3P协议**:对于不同顶级域名,浏览器默认不允许跨域设置Cookie。但通过添加P3P头(Privacy Policy Platform),如`header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE...
3. **代理认证**:支持代理票证(Proxy Ticket),允许一个服务代表用户获取其他服务的票证,实现跨域权限传递。 4. **配置支持**:可以通过XML配置文件或注解来配置客户端,如定义CAS服务器URL、服务ID等。 5. **...
标题中的“CAS实现单点登录,登出(Java和PHP客户端)”指的是使用中央认证服务(Central Authentication Service,简称CAS)来构建一个跨域、跨平台的单点登录(Single Sign-On, SSO)系统。在这样的系统中,用户只...
违反同源策略会导致跨域问题,具体表现为无法读取cookie、localStorage、indexDB,DOM无法获得,以及AJAX请求无法发送。 解决iframe跨域的方法之一是通过设置document.domain的值。document.domain属性获取或设置...
Laravel 开发中的 CAS (Central Authentication Service) 服务器是实现单点登录(Single Sign-On, SSO)的一种常见方法。CAS 是一个开放源码的认证协议,旨在简化Web应用的认证流程,允许用户在一次登录后访问多个...
这意味着用户在CAS上登录后,其身份信息可以通过Shiro在各个应用之间共享,实现跨域的Session一致性,进一步巩固了SSO的效果。 **集成步骤** 1. **配置Shiro Realm**:创建一个实现CAS Realm的Shiro Realm,以便从...
- **Web安全基础**:理解SSO的工作原理,以及如何通过CAS实现跨域的身份验证。 - **Java Web开发**:了解基于Servlet和JSP的Web应用开发,以及Spring框架的应用。 - **身份验证协议**:学习CAS协议和其他相关身份...
标题中的“cas单点登出的3个类”指的是在CAS(Central Authentication Service)系统中实现单点登出功能所涉及的关键组件。CAS是一个开源的身份验证框架,它提供了单点登录(Single Sign-On, SSO)功能,允许用户...
在实现跨域SSO的过程中,有几个关键知识点是必须理解的: 1. **Cookie与Session**: - **Cookie**:是服务器发送到用户浏览器并存储的一小块数据,用于识别用户会话。在跨域SSO中,Cookie通常用来存储用户的身份...
7. **CAS(Central Authentication Service)协议**:这是一种常见的SSO实现标准,提供了完整的框架和协议,可以简化跨域SSO的实现。在这个实现中,可能就是使用了CAS或者类似的方法。 在“完全跨域SSO”项目中,...
5. **代理票证**(Proxy Ticket):除了基本的服务票证,CAS还支持代理票证,允许一个已验证的用户代表另一个用户访问资源,这对于实现复杂的权限管理和跨域认证很有帮助。 6. **票证生命周期管理**:客户端需要...
.NET CAS(Central Authentication Service,中央认证服务)是Java平台上的一个开源身份验证框架,但同样可以与.NET环境集成,实现跨域的单点登录(Single Sign-On,简称SSO)。在.NET环境中,开发者通常会利用CAS...