java 单点_java实现单点登录的两种方式
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实现单点登录的两种方式相关推荐
- python钉钉扫码登录程序_钉钉扫码登录网站(两种方式实现)
钉钉扫码登录网站(两种方式实现) 效果: 动手敲代码! 第一步,钉钉后台配置 点击进入钉钉开发者平台 的页面,点击左侧菜单的[移动接入应用-登录],然后点击右上角的[创建扫码登录应用授权],创建用于免 ...
- SSH登录的两种方式
SSH登录的两种方式 一 : 密码登录 1.客户端向SSH服务器发出请求,服务器将自己的公钥返回给客户端. 2.客户端用服务器的公钥加密自己的登录密码,再将信息发送给服务器. 3.服务器接收到客户端传 ...
- 钉钉扫码登录网站(两种方式实现)
钉钉扫码登录网站(两种方式实现) 效果: 源代码地址:https://github.com/jellydong/DingQrCodeLogin 动手敲代码! 第一步,钉钉后台配置 参考链接:获取app ...
- SSH远程免密登录的两种方式
SSH远程免密登录的两种方式 一.ssh远程登录操作 1.先ping测试下看看网络是否通畅 2.ssh 192.168.150.148 二.ssh免密登录方式一 1.生成公钥.私钥 2.拷贝公钥到目标 ...
- vue编写一个登录页面,使用Tab栏实现“账号登录”和“二维码登录”这两种方式的切换
编写一个登录页面,使用Tab栏实现"账号登录"和"二维码登录"这两种方式的切换,并通过transition组件结合animate.css实现切换时的动画效果 1 ...
- 【小程序登录的两种方式】
小程序登录的两种方式 账号密码登录 获取小程序授权登录 账号密码登录 app.json页面顺序 先进入首页 有token就是首页 没有token时redirectTo登录页 {"pages& ...
- java多线程区别_Java中实现多线程的两种方式之间的区别
Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...
- javax消息队列_java实现消息队列的两种方式(小结)
实现消息队列的两种方式 Apache ActiveMQ官方实例发送消息 下载解压后拿到java代码实例 然后倒入IDE 如下: 请认真阅读readme.md文件,大致意思就是把项目打成两个jar包,然 ...
- java 不重启部署_编译Java类后不重启Tomcat有两种方式:热部署、热加载
不重启Tomcat有两种方式:热部署.热加载 热部署:容器状况在运行时重新部署整个项目.这类环境下一般整个内存会清空,重新加载,这类方式 有可能会造成sessin丢失等环境.tomcat 6确实可以热 ...
- 使用IntelliJ IDEA 集成阿里提供的 Alibaba Cloud Toolkit插件,实现自动化远程部署Java项目(jar包,war包两种方式)
打开IntelliJ IDEA编译器,点击文件==>点击设置(setting) 在设置页面点击插件(英文应该是 Plugins ,对IntelliJ IDEA汉化感兴趣的同学可以在这个页面搜索 ...
最新文章
- 电脑壁纸励志_励志壁纸 | 要乖 要长大 要努力 要不负众望
- 产品更新教程-钉钉宜搭版本:手写签名和定位组件来了
- 新手攻略熔炉_【新手攻略】快速入门
- [收集]Sublime Text 3常用快捷键
- Java操作——获取文件扩展名,去掉文件扩展名
- 局域网samba配置,以及在Windows环境下的访问
- 网络 HTTP状态码大全
- Android中应用程序drawable图片资源占用内存的统计
- 如何搭建企业数据平台
- Android 仿网易新闻底部Tab
- Linux 系统服务之间 实现免密登陆
- 关于Javascript, php的web公开课笔记
- java 如何查询数据库_java怎么查询数据库
- Linux服务器安全加固
- 宋浩老师线性代数知识卡片
- Kong 开源的服务网格Kuma爬过了K8S这座大山
- PHP服务端 苹果支付(IAP)处理
- script什么意思中文翻译成,script中文是什么意思
- 解决pyspark的 Added jobs for time问题
- 如果圆桌骑士有特殊情况(Knights of the Round Table)
热门文章
- 如何学习平面设计色彩搭配原理
- 如何检测浏览器是否安装了Adblock,uBlock Origin,Adguard,uBlock等广告屏蔽插件
- MATLAB强化学习实战(三) 使用并行计算训练DQN智能体进行车道保持辅助(LKA)
- 最新版MySQL 8.0.22(Windows 64位)下载安装详细方法
- 【STM32Cube笔记】16-STM32Cube个性化定制
- 服务器组态文件己写保护,组态王常见问题集锦(一)
- XUI 一个简洁而优雅的Android原生UI框架,解放你的双手!
- 电机与拖动(电、磁、机械运动)
- ensp的下载与安装
- 基于asp.net338医院体检信息管理系统