1.如果两个网站域名的一级域名相同,可以使用cookie和filter实现单点登录,因为网站有可能(具体看cookie的设置)可以共享cookie。例如:www.bbs.aa.cnwww.news.aa.cn。

第一个网站在登录后,把用户信息写到cookie中,当访问第二个网站时,第二个网站先经过自己的filter,检查session,如果没有,查询cookie,取出用户信息,放在session中登录。

public void doFilter(ServletRequest req, ServletResponse resp,

FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) req;

if(request.getSession().getAttribute("user")== null){

Cookie[] cs = request.getCookies();

if (cs != null && cs.length > 0) {

for (Cookie c : cs) {

String cName = c.getName();

if (cName.equals("sso")) {

String userName = c.getValue();

request.getSession().setAttribute("user", userName);

}

}

}

}

chain.doFilter(request, resp);

}

2.如果两个网站域名的一级域名不同,不可以使用cookie和filter实现单点登录,因为网站不可以共享cookie。例如:www.bbs.cnwww.news.cn。

使用cas框架服务实现单点登录。1.部署cas服务端。2.在服务器端的ticketGrantingTicketCookieGenerator.xml中修改文件。

p:cookieSecure="false"//使用http协议

p:cookieMaxAge="-1"//cookie有效时间

p:cookieName="yjwname"//cookie名称

p:cookiePath="/" />//项目名称

3.部署www.bbs.cnwww.news.cn服务,在每个客户端项目中加入casjar包,在web.xml中配置<?xml version="1.0" encoding="UTF-8"?>

mywebapp

Simple sample, how to use CAS Java Client 3.x.

In this sample exists a public area (/)

and a private area (/protected/*).

CAS Authentication Filter

org.jasig.cas.client.authentication.AuthenticationFilter

casServerLoginUrl

http://www.service.com:8081/login

serverName

http://www.bbs.com:8081

renew

false

gateway

false

CAS Validation Filter

org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter

casServerUrlPrefix

http://www.service.com:8081

serverName

http://www.bbs.com:8081

CAS HttpServletRequest Wrapper Filter

org.jasig.cas.client.util.HttpServletRequestWrapperFilter

CAS Assertion Thread Local Filter

org.jasig.cas.client.util.AssertionThreadLocalFilter

CAS Authentication Filter

/protected/*

CAS Validation Filter

/*

CAS HttpServletRequest Wrapper Filter

/*

CAS Assertion Thread Local Filter

/*

CAS Validation Filter

/proxyCallback

4.启动服务,这样就可以实现单点登录

posted on 2016-06-05 11:17 杨军威 阅读(4932) 评论(0)  编辑  收藏

java 单点_java实现单点登录的两种方式相关推荐

  1. python钉钉扫码登录程序_钉钉扫码登录网站(两种方式实现)

    钉钉扫码登录网站(两种方式实现) 效果: 动手敲代码! 第一步,钉钉后台配置 点击进入钉钉开发者平台 的页面,点击左侧菜单的[移动接入应用-登录],然后点击右上角的[创建扫码登录应用授权],创建用于免 ...

  2. SSH登录的两种方式

    SSH登录的两种方式 一 : 密码登录 1.客户端向SSH服务器发出请求,服务器将自己的公钥返回给客户端. 2.客户端用服务器的公钥加密自己的登录密码,再将信息发送给服务器. 3.服务器接收到客户端传 ...

  3. 钉钉扫码登录网站(两种方式实现)

    钉钉扫码登录网站(两种方式实现) 效果: 源代码地址:https://github.com/jellydong/DingQrCodeLogin 动手敲代码! 第一步,钉钉后台配置 参考链接:获取app ...

  4. SSH远程免密登录的两种方式

    SSH远程免密登录的两种方式 一.ssh远程登录操作 1.先ping测试下看看网络是否通畅 2.ssh 192.168.150.148 二.ssh免密登录方式一 1.生成公钥.私钥 2.拷贝公钥到目标 ...

  5. vue编写一个登录页面,使用Tab栏实现“账号登录”和“二维码登录”这两种方式的切换

    编写一个登录页面,使用Tab栏实现"账号登录"和"二维码登录"这两种方式的切换,并通过transition组件结合animate.css实现切换时的动画效果 1 ...

  6. 【小程序登录的两种方式】

    小程序登录的两种方式 账号密码登录 获取小程序授权登录 账号密码登录 app.json页面顺序 先进入首页 有token就是首页 没有token时redirectTo登录页 {"pages& ...

  7. java多线程区别_Java中实现多线程的两种方式之间的区别

    Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...

  8. javax消息队列_java实现消息队列的两种方式(小结)

    实现消息队列的两种方式 Apache ActiveMQ官方实例发送消息 下载解压后拿到java代码实例 然后倒入IDE 如下: 请认真阅读readme.md文件,大致意思就是把项目打成两个jar包,然 ...

  9. java 不重启部署_编译Java类后不重启Tomcat有两种方式:热部署、热加载

    不重启Tomcat有两种方式:热部署.热加载 热部署:容器状况在运行时重新部署整个项目.这类环境下一般整个内存会清空,重新加载,这类方式 有可能会造成sessin丢失等环境.tomcat 6确实可以热 ...

  10. 使用IntelliJ IDEA 集成阿里提供的 Alibaba Cloud Toolkit插件,实现自动化远程部署Java项目(jar包,war包两种方式)

    打开IntelliJ IDEA编译器,点击文件==>点击设置(setting) 在设置页面点击插件(英文应该是 Plugins ,对IntelliJ IDEA汉化感兴趣的同学可以在这个页面搜索 ...

最新文章

  1. 电脑壁纸励志_励志壁纸 | 要乖 要长大 要努力 要不负众望
  2. 产品更新教程-钉钉宜搭版本:手写签名和定位组件来了
  3. 新手攻略熔炉_【新手攻略】快速入门
  4. [收集]Sublime Text 3常用快捷键
  5. Java操作——获取文件扩展名,去掉文件扩展名
  6. 局域网samba配置,以及在Windows环境下的访问
  7. 网络 HTTP状态码大全
  8. Android中应用程序drawable图片资源占用内存的统计
  9. 如何搭建企业数据平台
  10. Android 仿网易新闻底部Tab
  11. Linux 系统服务之间 实现免密登陆
  12. 关于Javascript, php的web公开课笔记
  13. java 如何查询数据库_java怎么查询数据库
  14. Linux服务器安全加固
  15. 宋浩老师线性代数知识卡片
  16. Kong 开源的服务网格Kuma爬过了K8S这座大山
  17. PHP服务端 苹果支付(IAP)处理
  18. script什么意思中文翻译成,script中文是什么意思
  19. 解决pyspark的 Added jobs for time问题
  20. 如果圆桌骑士有特殊情况(Knights of the Round Table)

热门文章

  1. 如何学习平面设计色彩搭配原理
  2. 如何检测浏览器是否安装了Adblock,uBlock Origin,Adguard,uBlock等广告屏蔽插件
  3. MATLAB强化学习实战(三) 使用并行计算训练DQN智能体进行车道保持辅助(LKA)
  4. 最新版MySQL 8.0.22(Windows 64位)下载安装详细方法
  5. 【STM32Cube笔记】16-STM32Cube个性化定制
  6. 服务器组态文件己写保护,组态王常见问题集锦(一)
  7. XUI 一个简洁而优雅的Android原生UI框架,解放你的双手!
  8. 电机与拖动(电、磁、机械运动)
  9. ensp的下载与安装
  10. 基于asp.net338医院体检信息管理系统