单点登录简介
来源:互联网 发布: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
- 单点登录简介
- 单点登录简介
- 单点登录简介
- 单点登录sso简介
- 单点登录简介
- 单点登录简介
- 单点登录简介
- 单点登录SSO简介
- 单点登录(SSO)简介
- 单点登录(SSO)—简介
- 单点登录(SSO)—简介
- 单点登录(SSO)—简介
- 单点登录(SSO)—简介
- 单点登录(SSO)—简介
- 单点登录(SSO)—简介
- 单点登录(SSO)—简介
- 单点登录(SSO)—简介
- 单点登录(SSO)—简介
- iOS 怎么判断当前的输入法
- 修改mysqld服务器的charset
- errno.h
- IDisposable接口详解
- 南阳 69 数的长度
- 单点登录简介
- Linux硬件设备访问
- g++ *.cpp -o main -std=c++0x
- 端口与并发服务器
- 让杰哥叫你如何玩转安卓,编辑app教程你玩共享。
- POJ 1753 Flip Game(状态压缩BFS)
- 并差集 hdu3038
- 2.4Bootstrap表单
- ubuntu下NFS配置步骤,以及嵌入式linux挂载配置步骤