单点登录简介

来源:互联网 发布:mac pro如何全屏 编辑:程序博客网 时间:2024/04/29 19:11

百度百科


单点登录分类

一  一级域名相同如

www.baidu.com

yun.baidu.com

解决办法 cookie+Filter

二  一级域名不同 如 

www.baidu.com

www.sias.com

Demo1

index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'index.jsp' starting page</title></head><body><c:choose><c:when test="${not empty sessionScope.user}">   Welcome !  ${sessionScope.user}   </c:when><c:otherwise>   你还没有登录,请先登录:    <form action="<%=path%>/login" method="post">userName:<input type="text" name="userName"><br>password:<input type="password" name="password"><br> <inputtype="submit" value="登录"></form></c:otherwise></c:choose></body></html>

Servlet
public class LoginServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String userName = request.getParameter("userName");String password = request.getParameter("password");if(userName != null && password != null){if(userName.equals(password)){//登录成功,实际应查询数据库request.getSession().setAttribute("user", userName);//向客户端写入cookieCookie c = new Cookie("sso",userName);c.setMaxAge(3600);//1小时c.setDomain(".zs.cn");//www.bbs.zs.cn www.news.zs.cnc.setPath("/");//服务器所有目录下所有项目都能访问到这个cookidresponse.addCookie(c);}}response.sendRedirect(request.getContextPath() + "/index.jsp");}}
修改host文件


修改tomcat Server.xml配置文件
<Host name="www.bbs.zs.cn"  appBase="bbs" ></Host>
新建一个bbs文件夹
新建一个ROOT文件夹
讲 WebRoot复制到Root目录下

访问www.bbs.zs.cn:8080/index.jsp  登录之后


设置一个filter
public class AutoLoginFilter implements Filter {public void destroy() {}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);}public void init(FilterConfig arg0) throws ServletException {}}

<filter><filter-name>autoLogin</filter-name><filter-class>cn.itcast.sso.filter.AutoLoginFilter</filter-class></filter><filter-mapping><filter-name>autoLogin</filter-name><url-pattern>/*</url-pattern></filter-mapping>
再增加一条设置
<Host name="www.news.zs.cn"  appBase="news" ></Host>
新建一个news文件夹 将bbs的Root复制过来
访问
http://www.news.zs.cn:8080/


登录成功

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 北京建筑施工证怎么办呢 模拟城市5水抽干了怎么办 ip地址错误网络无法接通怎么办 rhino模型太大打开半天怎么办 日本新干线车票丢了怎么办 房间太干燥怎么办又热 薄荷叶子全干了怎么办 水培栀子花叶子蔫了怎么办 薄荷叶叶边干了怎么办 碗莲叶子发黑腐烂怎么办 龟背叶叶子蔫了怎么办 夏天龟背竹蔫了怎么办 春羽叶子长黄斑怎么办 百合竹叶子发黄掉落怎么办 凤尾蕨叶子蔫了怎么办 绿地珊瑚蕨干了怎么办 翠云草叶子蔫了怎么办 珊瑚蕨叶子烂了怎么办 黑骨茶叶子黑斑怎么办 外场主持没有人互动怎么办 企业年报填错了怎么办 手机忘了放哪了怎么办 燃气卡车没气了怎么办 老房子拆了重建怎么办 加了差的汽油怎么办 事业单位未满5年怎么办 小学孩子不会制订学习计划怎么办 忘记提交原创怎么办百度熊掌号 计算机一级报名表填错了怎么办 离婚了不给孩子生活费怎么办 点击爱奇艺系统提示停止运行怎么办 电视机图像颜色变了怎么办 10万签约被拒怎么办 钢琴弹奏中的折指怎么办! 吉他琴头旋钮将琴头扭坏了怎么办? 1岁幼儿不爱吃饭怎么办 3岁幼儿不爱吃饭怎么办 4岁幼儿不爱吃饭怎么办 买票买了点映 怎么办 一年级孩子注意力不集中怎么办 孩子上一年级注意力不集中怎么办