sso 单点登陆 客户端 登录

 

 

 

/*
	 * 用于处理通过开放平台登陆请求
	 * */
	@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捐助),没钱捧个人场,谢谢各位。



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

 

 

转载于:https://my.oschina.net/u/3269611/blog/1619435

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值