sso 单点登陆 客户端 登录

简介:       /* * 用于处理通过开放平台登陆请求 * */ @RequestMapping("/ssologin") public String ssologin(ModelMap modelMap, HttpServletRequest request)...

 

 

 

	/*
	 * 用于处理通过开放平台登陆请求
	 * */
	@RequestMapping("/ssologin")
	public String ssologin(ModelMap modelMap, HttpServletRequest request) throws Exception{
		LoginSituation loginSituation = LoginSituation.Failure;

		//从数据中的配置表,获取SSO服务器地址
		String ssoURL = sysConfigService.getSsoDomainName();
		String uId = request.getParameter("uId");
		String uName = request.getParameter("uName");
		String token = request.getParameter("token");

		if(uId == null || uName == null || token == null){
			System.out.println("SSO用户信息有误!");
			return "/ssoerror/error_userinfo";
		}	
		JSONObject jo = new JSONObject();
		jo.put("uId", uId);
		jo.put("uName", uName);
		jo.put("token", token);
		System.out.println("jsonObject:" + jo);
		String postXML = jo.toString();
		
		//向SSO服务器发送请求
		String result = HttpPostUtil.post(postXML, ssoURL);
		if(result == null || result.trim().equals("")){
			return "/ssoerror/error_disconnect";
		}
		//从SSO服务器返回的响应消息获取“resultCode”字段
		JSONObject jo2 = JSONObject.fromObject(result);
		String resultCode = jo2.getString("resultCode");
		System.out.println("resultCode=" + resultCode);
		if(resultCode !=null && "200".equals(resultCode.trim())){
			//封装sso单点登陆用户信息
			LoginInfo loginInfo = new LoginInfo();
//			uName += "@open"; //在SSO用户名后加“@open”以区分是本地用户还是SSO用户
			loginInfo.setLoginName(uName);
			loginInfo.setPassword(uName);//密码默认与用户名相同
			//验证sso单点登陆用户信息
			loginSituation = loginService.userSsologin(loginInfo, modelMap, request);
			request.getSession().setAttribute("loginSituation", loginSituation);
		}
		//SSO验证失败
		else if(resultCode !=null && "400".equals(resultCode.trim())){
			System.out.println("验证失败!");
//			loginSituation = LoginSituation.Failure;
			return "/ssoerror/error_validation";
		}		
		//返回验证通过的页面
		return getViewByLoginSituation(loginSituation);
//		return loginSituation.getIntCode();
	}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

目录
相关文章
|
5月前
|
存储 缓存
实现单点登录的方式
实现单点登录的方式
67 1
|
11月前
|
安全 数据安全/隐私保护
单点登录(SSO)看这一篇就够了
单点登录(SSO)看这一篇就够了
738 0
|
存储 NoSQL 应用服务中间件
SSO(单点登陆)
SSO(单点登陆)
|
Python
基于flask-oidc的OIDC协议授权码模式单点登录SSO实现
基于flask-oidc的OIDC协议授权码模式单点登录SSO实现
278 0
|
存储 SQL 安全
客户端认证-认证方式
客户端认证-认证方式
113 0
Jasny SSO是否支持多种身份提供者?
Jasny SSO是否支持多种身份提供者?
|
XML 安全 数据格式
Jasny SSO是否支持SAML认证?底层原理是什么?
Jasny SSO是否支持SAML认证?底层原理是什么?
Jasny SSO是否支持OAuth认证?底层原理是什么?
Jasny SSO是否支持OAuth认证?底层原理是什么?
|
数据安全/隐私保护
Jasny SSO支持哪些认证方式?底层原理是什么?
Jasny SSO支持哪些认证方式?底层原理是什么?
|
数据安全/隐私保护
OIDC SSO - 相关SSO流程和注意事项
## 背景信息 > OIDC SSO相关文档总共4篇,主要内容为对OIDC实现SSO登录流程时的各个细节和相关技术的阐述:1. 《[OIDC SSO - OAuth2.0的授权模式选择](https://ata.alibaba-inc.com/articles/218489)》 2. 《OIDC SSO - 相关SSO流程和注意事项》 3. 《[OIDC SSO - Discovery Mech
542 0