最近了解到SSO,以前真心没有了解过,就查了一下,在企业中,或者大的网站都会用到这个技术。
1. 什么是SSO
英文全称:Single Sign On ,单点登录。
SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机
制。它是目前比较流行的企业业务整合的解决方案之一。
目前的企业应用环境中,往往有很多的应用系统,如办公自动化(OA)系统,财务管理系统,档案管理系统,信息查询系统等等。这些应用系统服务于企业的信息
化建设,为企业带来了很好的效益。但是,用户在使用这些应用系统时,并不方便。用户每次使用系统,都必须输入用户名称和用户密码,进行身份验证;而且应用系统不同,用
户账号就不同,用户必须同时牢记多套用户名称和用户密码。特别是对于应用系统数目较多,用户数目也很多的企业,这个问题尤为突出。问题的原因并不是系统开发出现失误,
而是缺少整体规划,缺乏统一的用户登录平台,使用SSO技术可以解决以上这些问题。
总之,通俗点儿说,使用SSO,一次登录,可以使用所有的系统。
2. SSO的基本实现原理
从网上查资料,简单的画了个图,最简单的实现吧,使用了Cookie。
3. 简单实现
首先, 我们需要建3个项目 sso项目,sso_webdemo01业务项目和sso_webdemo02业务项目。
3个项目中好多代码都是重复的,这里就直接复制了
3.1 sso项目
SSOAction
简单的实现了验证操作,
package org.ygy.sso.action;
import java.io.IOException;
import java.util.Map;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;
import org.ygy.sso.entity.UserEntity;
import com.opensymphony.xwork2.ActionSupport