javaWeb简单的单点登录sso实现方法
来源:互联网 发布:四川广电网络 宽带 编辑:程序博客网 时间:2024/05/29 09:56
总结一个简单的sso单点登录实现方法,先上一张思路图:
思路不复杂,在一个Filter中如下:
String baseUrl="你的基础系统路径";//比如是120.24.270.95:8080String host=request.getHeader("HOST");String url=request.getRequestURI();if(request.getQueryString()!=null){url=url+"?"+request.getQueryString();}/***********单点登录***********/if(session.getAttribute(session_user_KEY)==null){//获取session中用户的登录信息String sso=request.getParameter("sso");if(sso!=null && sso.equals("1")){//sso标记String userName=request.getParameter("userName");String password=request.getParameter("password");ssoLoginSrv.login(userName, password, request);//如果有sso标记,获取参数中的用户名和密码,判断是否合法,合法则可免登。}else{/*加上sso标志*/if(ex.indexOf("?")>0){ex=ex+"&sso=1";}else{ex=ex+"?sso=1";}//带着url转发到基础系统response.sendRedirect(baseUrl+"/loginAction!login.do?url="+ URLEncoder.encode("http://" + host + url, "utf8"));return;}}
转发到基础系统,如果基础系统已登录,则子系统可实现免登,
是Action中的一个方法,执行完带着用户名密码转回去,
如下方法:
public String login(){Map session=ActionContext.getContext().getSession();User loginUser=(User)session.get(session_user_KEY);try{if(loginUser==null){loginUser=userSrv.login(user.getUserName(), user.getPassword());}}catch (Exception e) {log.error(e.getMessage());this.setMsg(e.getMessage());return "loginNo";}if(isNull(url)){url="/index.jsp";}else if(url.indexOf("sso=1")>0){String str1=DesUtil.encode(loginUser.getUserName(), ssoLoginPwdKey, "utf8");String str2=DesUtil.encode(loginUser.getPassword(),ssoLoginPwdKey, "utf8");url=url+"&userName="+str1+"&password="+str2;}return "loginOk";}
在strust.xml中配置转发到url,带着用户名密码回到一开始的子系统,还是被Filter拦截。再次进入子系统Filter的时候,拿到sso标记,和用户名密码,验证是否合法,合法则往下执行,不合法跳转到登录页面。
1 1
- javaWeb简单的单点登录sso实现方法
- asp.net简单实现单点登录(SSO)的方法
- 单点登录(SSO)的简单实现
- [SSO]Java实现简单的单点登录
- php的sso单点登录实现方法
- php的sso单点登录实现方法
- sso的单点登录实现
- SSO各产品单点登录的简单实现
- SSO各产品单点登录的简单实现
- 站点集群系统中实现简单的单点登录(SSO)
- php的sso单点登录实现方法,代码实例!
- SSO的CAS单点登录简单例子
- 单点登录(sso)的简单理解
- JavaWeb简单的单点登录、验证码校验功能实现
- 单点登录SSO的实现原理
- CSA实现的SSO单点登录例子
- 单点登录SSO的实现原理
- SSO---CAS实现单点登录的HelloWorld
- 数据结构——stack的实现
- python使用xlrd模块读取xlsx文件中的ip
- Java基础
- xml和json
- fopen 打开方式
- javaWeb简单的单点登录sso实现方法
- Head First Java勘误
- Java基础(二)
- LeetCode 455. Assign Cookies
- centOS 安装vue.js
- SpringBoot-Mybatis_Plus学习记录之公共字段自动填充
- PAT-A-1041. Be Unique (20)
- git /scp
- ACM-动态规划5-吃糖果