| | |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.client.RestTemplate; |
| | | import org.springframework.web.servlet.view.RedirectView; |
| | | import org.springframework.web.util.UriComponentsBuilder; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | |
| | | |
| | | /** |
| | | * SSO登录入口 - 信通院会调用这个地址 |
| | | * 访问路径:http://域名:8095/sso/login |
| | | * 访问路径:http://域名:8095/sso/ssoLoginLyra |
| | | */ |
| | | @GetMapping("ssoLoginLyra") |
| | | public RedirectView ssoLoginLyra() { |
| | |
| | | String s = HttpUtils.sendGet(url, param); |
| | | Map<String, String> result = getResult(s); |
| | | String code = result.get("code"); |
| | | if (StringUtils.isEmpty(code)) { |
| | | log.error("未获取到授权码"); |
| | | throw new BaseException("SSO授权失败"); |
| | | } |
| | | |
| | | String path = sysConfigService.selectConfigByKey("sys.qddz"); |
| | | try { |
| | | SSOTokenResponse accessToken = getAccessTokenLyra(code, true); |
| | | SSOUserInfo userInfo = getUserInfoLyra(accessToken.getAccess_token(), true); |
| | | |
| | | createLocalSession(userInfo); |
| | | |
| | | String path = sysConfigService.selectConfigByKey("sys.qddz"); |
| | | if (StringUtils.isEmpty(path)) { |
| | | throw new BaseException("请配置前端地址"); |
| | | } |
| | | String reviewUrl = path + "/loginSSO?token=" + accessToken.getAccess_token() + "&orgid=" + |
| | | userInfo.getZuZhiJGID() + "&orgname=" + userInfo.getZuZhiJGMC() + |
| | | "&ZuHuID="+ userInfo.getYongHuID() +"&deptCode=null"; |
| | | // String reviewUrl = path + "/loginSSO?token=" + accessToken.getAccess_token() + "&orgid=" + |
| | | // userInfo.getZuZhiJGID() + "&orgname=" + userInfo.getZuZhiJGMC() + |
| | | // "&ZuHuID="+ userInfo.getYongHuID() +"&deptCode=null"; |
| | | String reviewUrl = ""; |
| | | reviewUrl = UriComponentsBuilder.fromHttpUrl(path) |
| | | .path("/loginSSO") |
| | | .queryParam("token", accessToken.getAccess_token()) |
| | | .queryParam("orgid", userInfo.getZuZhiJGID()) |
| | | .queryParam("orgname", userInfo.getZuZhiJGMC()) |
| | | .queryParam("ZuHuID", userInfo.getYongHuID()) |
| | | .queryParam("deptCode", "null") |
| | | .build() |
| | | .toUriString(); |
| | | |
| | | log.info("单点登陆重定向地址为:{}", reviewUrl); |
| | | redirectView.setUrl(reviewUrl); |
| | | redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY); |
| | | redirectView.setStatusCode(HttpStatus.FOUND); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | return new RedirectView(); |
| | | log.error("SSO登录失败", e); |
| | | redirectView.setUrl(path + "/login?error=sso_failed"); |
| | | return redirectView; |
| | | |
| | | } |
| | | |
| | | return redirectView; |