|  | @ -98,13 +98,13 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 登陆
 | 
	
		
			
				|  |  |      * @param parameters
 | 
	
		
			
				|  |  |      * 不定入参:
 | 
	
		
			
				|  |  |      * client_id 应用标识
 | 
	
		
			
				|  |  |      * captcha 验证码
 | 
	
		
			
				|  |  |      * password 密码
 | 
	
		
			
				|  |  |      * username 用户名/手机/身份证号
 | 
	
		
			
				|  |  |      * login_type 用户类型 1或默认为user,2:医生登录,3:患者登录
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param parameters  不定入参:
 | 
	
		
			
				|  |  |      *                    client_id 应用标识
 | 
	
		
			
				|  |  |      *                    captcha 验证码
 | 
	
		
			
				|  |  |      *                    password 密码
 | 
	
		
			
				|  |  |      *                    username 用户名/手机/身份证号
 | 
	
		
			
				|  |  |      *                    login_type 用户类型 1或默认为user,2:医生登录,3:患者登录
 | 
	
		
			
				|  |  |      * @param httpSession
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
	
		
			
				|  | @ -124,12 +124,12 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |             //解密密码
 | 
	
		
			
				|  |  |             if (parameters.get("password") != null) {
 | 
	
		
			
				|  |  | //                RSAPrivateKey rsaPrivateKey = (RSAPrivateKey)httpSession.getAttribute("privateKey");
 | 
	
		
			
				|  |  |                 KeyPair keyPair = (KeyPair)httpSession.getAttribute("privateKey");
 | 
	
		
			
				|  |  | //                KeyPair keyPair = (KeyPair) httpSession.getAttribute("privateKey");
 | 
	
		
			
				|  |  | //                parameters.put("password", RSAUtils.decryptByPrivateKey(parameters.get("password"), rsaPrivateKey));
 | 
	
		
			
				|  |  |                 String password = com.yihu.jw.security.utils.RSAUtils.decryptBase64(parameters.get("password"),keyPair);
 | 
	
		
			
				|  |  |                 parameters.put("password",password);
 | 
	
		
			
				|  |  | //                String password = com.yihu.jw.security.utils.RSAUtils.decryptBase64(parameters.get("password"), keyPair);
 | 
	
		
			
				|  |  | //                parameters.put("password", password);
 | 
	
		
			
				|  |  | //                parameters.put("password", RSAUtils.decryptByPrivateKey(parameters.get("password"), rsaPrivateKey));
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 parameters.put("grant_type", "ihealthCode");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } else {
 | 
	
	
		
			
				|  | @ -137,7 +137,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         ClientDetails authenticatedClient = clientDetailsService.loadClientByClientId(client_id);
 | 
	
		
			
				|  |  |         if(null == authenticatedClient){
 | 
	
		
			
				|  |  |         if (null == authenticatedClient) {
 | 
	
		
			
				|  |  |             throw new InvalidRequestException("client_id");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         TokenRequest tokenRequest = oAuth2RequestFactory.createTokenRequest(parameters, authenticatedClient);
 | 
	
	
		
			
				|  | @ -149,15 +149,15 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |         /*如果是移动端登陆则移除之前的token,
 | 
	
		
			
				|  |  |         在网关处通过HTTP状态码告知前端是过期(402)还是账号在别处登陆(403),
 | 
	
		
			
				|  |  |         实现同一账号只能在一处登陆*/
 | 
	
		
			
				|  |  |         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
 | 
	
		
			
				|  |  | //        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
 | 
	
		
			
				|  |  | //        if (request.getHeader("login-device") != null && request.getHeader("login-device").equals("mobile")) {
 | 
	
		
			
				|  |  |         tokenStore.removeAccessToken(token.getValue());
 | 
	
		
			
				|  |  |         tokenStore.removeRefreshToken(token.getRefreshToken().getValue());
 | 
	
		
			
				|  |  |         token = getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest);
 | 
	
		
			
				|  |  | //            tokenStore.removeAccessToken(token.getValue());
 | 
	
		
			
				|  |  | //            tokenStore.removeRefreshToken(token.getRefreshToken().getValue());
 | 
	
		
			
				|  |  | //            token = getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest);
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        if (token == null) {
 | 
	
		
			
				|  |  | //            throw new UnsupportedGrantTypeException("Unsupported grant type: " + tokenRequest.getGrantType());
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  |         if (token == null) {
 | 
	
		
			
				|  |  |             throw new UnsupportedGrantTypeException("Unsupported grant type: " + tokenRequest.getGrantType());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         WlyyUserSimple wlyyUserSimple = userDetailsService.authSuccess(parameters.get("username"));
 | 
	
		
			
				|  |  |         wlyyUserSimple.setAccessToken(token.getValue());
 | 
	
		
			
				|  |  |         wlyyUserSimple.setTokenType(token.getTokenType());
 | 
	
	
		
			
				|  | @ -169,15 +169,15 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |         String openid = parameters.get("openid");
 | 
	
		
			
				|  |  |         //更新患者openId
 | 
	
		
			
				|  |  |         BaseLoginLogDO baseLoginLogDO = new BaseLoginLogDO();
 | 
	
		
			
				|  |  |         if(!StringUtils.isEmpty(openid) && !"undefined".equalsIgnoreCase(openid) && "3".equals(loginType)){
 | 
	
		
			
				|  |  |         if (!StringUtils.isEmpty(openid) && !"undefined".equalsIgnoreCase(openid) && "3".equals(loginType)) {
 | 
	
		
			
				|  |  |             baseLoginLogDO.setOpenid(openid);
 | 
	
		
			
				|  |  |             userDetailsService.updateOpenId(openid,wlyyUserSimple.getId());
 | 
	
		
			
				|  |  |             userDetailsService.updateOpenId(openid, wlyyUserSimple.getId());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (parameters.get("password") != null) {
 | 
	
		
			
				|  |  |             //使用密码登录成功后, 更新失败次数为 0
 | 
	
		
			
				|  |  |             userDetailsService.addFailureCount(username,0);
 | 
	
		
			
				|  |  |             userDetailsService.addFailureCount(username, 0);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         userDetailsService.setRolePhth(loginType,token,wlyyUserSimple.getId(),redisTemplate);
 | 
	
		
			
				|  |  |         userDetailsService.setRolePhth(loginType, token, wlyyUserSimple.getId(), redisTemplate);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         baseLoginLogDO.setUserId(wlyyUserSimple.getId());
 | 
	
		
			
				|  |  |         baseLoginLogDO.setCreateTime(new Date());
 | 
	
	
		
			
				|  | @ -191,6 +191,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 单点登陆第二步 - token验证
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param parameters
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
	
		
			
				|  | @ -231,15 +232,14 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param openid
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/oauth/getByOpenId", method = RequestMethod.POST)
 | 
	
		
			
				|  |  |     public ResponseEntity<Oauth2Envelop<WlyyUserSimple>> getByOpenId( @RequestParam(value = "openid", required = true) String openid) {
 | 
	
		
			
				|  |  |     public ResponseEntity<Oauth2Envelop<WlyyUserSimple>> getByOpenId(@RequestParam(value = "openid", required = true) String openid) {
 | 
	
		
			
				|  |  |         BaseLoginLogDO loginLog = baseLoginLogService.findByOpenId(openid);
 | 
	
		
			
				|  |  |         if(loginLog== null){
 | 
	
		
			
				|  |  |             throw new UsernameNotFoundException("can't find login log by openod: "+openid);
 | 
	
		
			
				|  |  |         if (loginLog == null) {
 | 
	
		
			
				|  |  |             throw new UsernameNotFoundException("can't find login log by openod: " + openid);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String userAgent = loginLog.getUserAgent();
 | 
	
		
			
				|  |  |         WlyyUserSimple wlyyUserSimple = JSONObject.parseObject(userAgent, WlyyUserSimple.class);
 | 
	
	
		
			
				|  | @ -253,6 +253,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 登出
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param parameters
 | 
	
		
			
				|  |  |      * @param request
 | 
	
		
			
				|  |  |      * @return
 | 
	
	
		
			
				|  | @ -277,13 +278,14 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取公钥
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param httpSession
 | 
	
		
			
				|  |  |      * @param httpServletResponse
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/oauth/public_key", method = RequestMethod.GET)
 | 
	
		
			
				|  |  |     public ResponseEntity<Oauth2Envelop<PublicKey>> publicKey (
 | 
	
		
			
				|  |  |     public ResponseEntity<Oauth2Envelop<PublicKey>> publicKey(
 | 
	
		
			
				|  |  |             HttpSession httpSession,
 | 
	
		
			
				|  |  |             HttpServletResponse httpServletResponse) throws Exception {
 | 
	
		
			
				|  |  |         //生成公钥和私钥
 | 
	
	
		
			
				|  | @ -313,28 +315,29 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/oauth/getPublicKey", method = RequestMethod.GET)
 | 
	
		
			
				|  |  |     public ObjEnvelop<PublickeyVO> getPublicKey(HttpSession httpSession, HttpServletResponse httpServletResponse){
 | 
	
		
			
				|  |  |         KeyPair keyPair =  com.yihu.jw.security.utils.RSAUtils.getKey();
 | 
	
		
			
				|  |  |     public ObjEnvelop<PublickeyVO> getPublicKey(HttpSession httpSession, HttpServletResponse httpServletResponse) {
 | 
	
		
			
				|  |  |         KeyPair keyPair = com.yihu.jw.security.utils.RSAUtils.getKey();
 | 
	
		
			
				|  |  |         httpSession.setAttribute("privateKey", keyPair);
 | 
	
		
			
				|  |  |         PublickeyVO pk = new PublickeyVO();
 | 
	
		
			
				|  |  |         pk.setPublicKey(com.yihu.jw.security.utils.RSAUtils.generateBase64PublicKey(keyPair));
 | 
	
		
			
				|  |  |         return ObjEnvelop.getSuccess("success",pk);
 | 
	
		
			
				|  |  |         return ObjEnvelop.getSuccess("success", pk);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取验证码
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param parameters
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/oauth/captcha", method = RequestMethod.GET)
 | 
	
		
			
				|  |  |     public ResponseEntity<Oauth2Envelop<Captcha>> captcha(@RequestParam Map<String, String> parameters) throws  Exception{
 | 
	
		
			
				|  |  |     public ResponseEntity<Oauth2Envelop<Captcha>> captcha(@RequestParam Map<String, String> parameters) throws Exception {
 | 
	
		
			
				|  |  |         String client_id = parameters.get("client_id");
 | 
	
		
			
				|  |  |         String username = parameters.get("username");
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(client_id)) {
 | 
	
		
			
				|  |  |             throw new InvalidRequestException("client_id");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(username)){
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(username)) {
 | 
	
		
			
				|  |  |             throw new InvalidRequestException("username");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //验证请求间隔超时,防止频繁获取验证码
 | 
	
	
		
			
				|  | @ -350,8 +353,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |         params.add("to", username);
 | 
	
		
			
				|  |  |         HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(params, reqHeaders);
 | 
	
		
			
				|  |  |         HashMap<String, Object> result = restTemplate.postForObject("http://svr-base:10020/sms_gateway/send", httpEntity, HashMap.class);
 | 
	
		
			
				|  |  |         if (200 == (Integer) result.get("status")){
 | 
	
		
			
				|  |  |             Map<String, Object> sms =  (Map)result.get("obj");
 | 
	
		
			
				|  |  |         if (200 == (Integer) result.get("status")) {
 | 
	
		
			
				|  |  |             Map<String, Object> sms = (Map) result.get("obj");
 | 
	
		
			
				|  |  |             String captcha = (String) sms.get("captcha");
 | 
	
		
			
				|  |  |             Date deadline = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse((String) sms.get("deadline"));
 | 
	
		
			
				|  |  |             Long expire = (deadline.getTime() - System.currentTimeMillis()) / 1000;
 | 
	
	
		
			
				|  | @ -369,7 +372,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             JSONObject jsonStr = JSONObject.parseObject(message);
 | 
	
		
			
				|  |  |             if(jsonStr.containsKey("Message")){
 | 
	
		
			
				|  |  |             if (jsonStr.containsKey("Message")) {
 | 
	
		
			
				|  |  |                 message = jsonStr.getString("Message");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
	
		
			
				|  | @ -390,22 +393,23 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 验证验证码
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param parameters
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/oauth/captcha", method = RequestMethod.POST)
 | 
	
		
			
				|  |  |     public ResponseEntity<Oauth2Envelop> captchaCheck  (@RequestParam Map<String, String> parameters) throws  Exception{
 | 
	
		
			
				|  |  |     public ResponseEntity<Oauth2Envelop> captchaCheck(@RequestParam Map<String, String> parameters) throws Exception {
 | 
	
		
			
				|  |  |         String client_id = parameters.get("client_id");
 | 
	
		
			
				|  |  |         String username = parameters.get("username");
 | 
	
		
			
				|  |  |         String captcha = parameters.get("captcha");
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(client_id)) {
 | 
	
		
			
				|  |  |             throw new InvalidRequestException("client_id");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(username)){
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(username)) {
 | 
	
		
			
				|  |  |             throw new InvalidRequestException("username");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(captcha)){
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(captcha)) {
 | 
	
		
			
				|  |  |             throw new InvalidRequestException("captcha");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         Oauth2Envelop<Boolean> oauth2Envelop;
 | 
	
	
		
			
				|  | @ -422,13 +426,13 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 登陆
 | 
	
		
			
				|  |  |      * @param parameters
 | 
	
		
			
				|  |  |      * 不定入参:
 | 
	
		
			
				|  |  |      * login_type 用户类型 1或默认为user,2:医生登录,3:患者登录
 | 
	
		
			
				|  |  |      * mobile:手机号
 | 
	
		
			
				|  |  |      * captcha:验证码
 | 
	
		
			
				|  |  |      * clientId:
 | 
	
		
			
				|  |  |      * login_type 用户类型 1或默认为user,2:医生登录,3:患者登录
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param parameters  不定入参:
 | 
	
		
			
				|  |  |      *                    login_type 用户类型 1或默认为user,2:医生登录,3:患者登录
 | 
	
		
			
				|  |  |      *                    mobile:手机号
 | 
	
		
			
				|  |  |      *                    captcha:验证码
 | 
	
		
			
				|  |  |      *                    clientId:
 | 
	
		
			
				|  |  |      *                    login_type 用户类型 1或默认为user,2:医生登录,3:患者登录
 | 
	
		
			
				|  |  |      * @param httpSession
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
	
		
			
				|  | @ -446,7 +450,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |             throw new InvalidRequestException("regist type is null");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //type :1居民  2:医生
 | 
	
		
			
				|  |  |         if("3".equals(type)){
 | 
	
		
			
				|  |  |         if ("3".equals(type)) {
 | 
	
		
			
				|  |  |             String mobile = parameters.get("mobile");
 | 
	
		
			
				|  |  |             String captcha = parameters.get("captcha");
 | 
	
		
			
				|  |  |             HttpHeaders reqHeaders = new HttpHeaders();
 | 
	
	
		
			
				|  | @ -456,18 +460,18 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |             params.add("openid", parameters.get("openid"));
 | 
	
		
			
				|  |  |             HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(params, reqHeaders);
 | 
	
		
			
				|  |  |             Map<String, Object> result = restTemplate.postForObject("http://svr-patient:10021/basePatient/regist", httpEntity, HashMap.class);//svr-patient
 | 
	
		
			
				|  |  |             Map<String,Object> obj = (Map<String, Object>) result.get("obj");
 | 
	
		
			
				|  |  |             if("1".equals(obj.get("code")+"")){
 | 
	
		
			
				|  |  |             Map<String, Object> obj = (Map<String, Object>) result.get("obj");
 | 
	
		
			
				|  |  |             if ("1".equals(obj.get("code") + "")) {
 | 
	
		
			
				|  |  |                 registFlag = true;
 | 
	
		
			
				|  |  |                 parameters.put("username",mobile);
 | 
	
		
			
				|  |  |                 parameters.put("username", mobile);
 | 
	
		
			
				|  |  |                 wlyyRedisVerifyCodeService.store(client_id, mobile, captcha, 120);
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 return getFailedResponse(obj.get("message").toString(),-1,null);
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 return getFailedResponse(obj.get("message").toString(), -1, null);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             return getFailedResponse("暂不提供其他类型人员注册",-1,null);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             return getFailedResponse("暂不提供其他类型人员注册", -1, null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(registFlag){
 | 
	
		
			
				|  |  |         if (registFlag) {
 | 
	
		
			
				|  |  |             parameters.put("grant_type", "captcha");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             ClientDetails authenticatedClient = clientDetailsService.loadClientByClientId(client_id);
 | 
	
	
		
			
				|  | @ -502,7 +506,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             String loginType = parameters.get("login_type");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             userDetailsService.setRolePhth(loginType,token,wlyyUserSimple.getId(),redisTemplate);
 | 
	
		
			
				|  |  |             userDetailsService.setRolePhth(loginType, token, wlyyUserSimple.getId(), redisTemplate);
 | 
	
		
			
				|  |  |             BaseLoginLogDO baseLoginLogDO = new BaseLoginLogDO();
 | 
	
		
			
				|  |  |             baseLoginLogDO.setUserId(wlyyUserSimple.getId());
 | 
	
		
			
				|  |  |             baseLoginLogDO.setCreateTime(new Date());
 | 
	
	
		
			
				|  | @ -510,7 +514,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |             baseLoginLogDO.setUserAgent(userAgent);
 | 
	
		
			
				|  |  |             baseLoginLogDO.setLoginType(loginType);
 | 
	
		
			
				|  |  |             String openid = parameters.get("openid");
 | 
	
		
			
				|  |  |             if(!StringUtils.isEmpty(openid) && "undefined".equalsIgnoreCase(openid)){
 | 
	
		
			
				|  |  |             if (!StringUtils.isEmpty(openid) && "undefined".equalsIgnoreCase(openid)) {
 | 
	
		
			
				|  |  |                 baseLoginLogDO.setOpenid(openid);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             baseLoginLogService.save(baseLoginLogDO);
 | 
	
	
		
			
				|  | @ -539,7 +543,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |         return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private ResponseEntity<Oauth2Envelop<WlyyUserSimple>> getFailedResponse(String message ,int status,WlyyUserSimple ehrUserSimple) {
 | 
	
		
			
				|  |  |     private ResponseEntity<Oauth2Envelop<WlyyUserSimple>> getFailedResponse(String message, int status, WlyyUserSimple ehrUserSimple) {
 | 
	
		
			
				|  |  |         HttpHeaders headers = new HttpHeaders();
 | 
	
		
			
				|  |  |         headers.set("Cache-Control", "no-store");
 | 
	
		
			
				|  |  |         headers.set("Pragma", "no-cache");
 | 
	
	
		
			
				|  | @ -553,7 +557,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |         return wlyyOAuth2ExceptionTranslator;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |    @ExceptionHandler(Exception.class)
 | 
	
		
			
				|  |  |     @ExceptionHandler(Exception.class)
 | 
	
		
			
				|  |  |     public ResponseEntity<Oauth2Envelop> handleException(Exception e) throws Exception {
 | 
	
		
			
				|  |  |         LOG.debug(e.getMessage(), e);
 | 
	
		
			
				|  |  |         if (e instanceof UsernameNotFoundException) {
 | 
	
	
		
			
				|  | @ -561,7 +565,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |         } else if (e instanceof NoSuchClientException) {
 | 
	
		
			
				|  |  |             return handleOAuth2Exception(new Oauth2Envelop("应用未注册!", ResultStatus.INVALID_GRANT), e);
 | 
	
		
			
				|  |  |         } else if (e instanceof InvalidGrantException || e instanceof UsernameNotFoundException) {
 | 
	
		
			
				|  |  |             return handleOAuth2Exception(new Oauth2Envelop(invalidGrantMessage((InvalidGrantException)e), ResultStatus.INVALID_GRANT), e);
 | 
	
		
			
				|  |  |             return handleOAuth2Exception(new Oauth2Envelop(invalidGrantMessage((InvalidGrantException) e), ResultStatus.INVALID_GRANT), e);
 | 
	
		
			
				|  |  |         } else if (e instanceof InvalidTokenException) {
 | 
	
		
			
				|  |  |             return handleOAuth2Exception(new Oauth2Envelop("Token过期!", ResultStatus.EXPIRE), e);
 | 
	
		
			
				|  |  |         } else if (e instanceof InvalidRequestException) {
 |