SSO 详细操作.pdf
文本预览下载声明
SSO:单点登录
1、使用Cookie解决单点登录
技术点:
1、设置Cookie 的路径为setPath(/).即Tomcat 的目录下都有效
2、设置Cookie 的域setDomain(.);即,或是有效。即跨域。
3、设置Cookie 的时间。即使用户不选择在几天内自动登录,也应该保存Cookie 以保存在当前浏览器没有关闭的情况下有效。
4、使用Filter 自动登录。
实现步骤:
1、首先要准备出几个虚拟主机并配置hosts文件,即本机DNS。
配置虚拟主机,主要通过修改tomcat_home/conf/server.xml文件完成:
增加几个Host节点,通过Cookie实现自动登录,必须配置的虚拟主页满足,即主域名必须保持一致。
2、先在bbs (或是mail)虚拟目录下,开发一个可以自动登录的程序,使用Filter:
1、登录的主页如下:
%@ page language=java import=java.util.* pageEncoding=UTF-8%
%@ taglib uri=/jsp/jstl/core prefix=c%
html
head
/head
body
p在同一台服务器上,多个站点自动登录:%=session.getId( %/p
c:if test=${empty sessionScope.user}
form name=f method=post action=c:url value=/login/
Name:input type=text name=name/br/
Pwd:input type=text name=pwd/br/
input type=checkbox name=chk value=7一周内自动登录br/
input type=submit value=登录/
/form
/c:if
c:if test=${not empty sessionScope.user}
欢迎你:${user}。a href=c:url value=/loginout/安全退出/a
/c:if
br/
相关站点: (只要在一边登录成功,即可以自动登录到另一个程序)br/
a href=:7777/abr/
a href=:7777/abr/
/body
/html
2、登录的Servlet程序如下:
/**
* 用户登录
*/
public class LoginServlet extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse resp
throws ServletException, IOException {
doPost(req, resp);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp
throws ServletException, IOException {
String nm = req.getParameter(name);
String pwd = req.getParameter(pwd);
String chk = req.getParameter(chk); //是否选中了7天自动登录
String forward = /index.jsp;
if(nm!=null !nm.trim().equals( nm.startsWith(it //用户名是it开始,且密码是pwd开始的可以登录
pwd !=null !pwd.trim().equals(
pwd.startsWith(pwd {
System.err.println(登录成功。。。。。);
forward = /jsps/welcome.jsp;
//无论如何,都要设置cookie,如果没有选择自动登录,则只在当前页面的跳
显示全部