单点登录(连接Redis缓存信息类)
配置依赖
redis.clients jedis 2.9.0登录页面
@PostMapping("/login")
public AjaxResult login(@RequestBody LoginBody loginBody) {
AjaxResult ajax = AjaxResult.success();
String result;
try {
if (StringUtils.isNotEmpty(loginBody.getUuid())) {
result = NAUTHMUtil.postNAUTHMByToken(loginBody.getUuid(), JRTConfig.getAuthS(), JRTConfig.getUrlS());
JSONObject BANFNJson = new JSONObject();
BANFNJson = JSONObject.parseObject(result);
String key = "loginToken:" + loginBody.getUuid();
Jedis jedis = new Jedis("redis地址");
jedis.auth("redis密码");
// if(BANFNJson.containsKey("account") && !BANFNJson.getBooleanValue("isError")){
if (jedis.exists(key)) {
String username = jedis.get(key);
JSONObject account = BANFNJson.getJSONObject(username);
// JSONObject account = BANFNJson.getJSONObject("account");
//根据用户名称获取密码,密码可以反解析
String passWord = "123456";
sysUserService.resetUserPwd(account.getString("code"), SecurityUtils.encryptPassword(passWord));
// 生成令牌
String token = loginService.loginSSO(account.getString("code"), passWord);
ajax.put(Constants.TOKEN, token);
} else {
//token验证失败
//跳转到login页面
AsyncManager.me().execute(AsyncFactory.recordLogininfor(loginBody.getUsername(), Constants.LOGIN_FAIL, MessageUtils.message("user.password.sso.match")));
throw new UserPasswordSSOFailException();
}
} else {
//没有token
//跳转到login页面
AsyncManager.me().execute(AsyncFactory.recordLogininfor(loginBody.getUsername(), Constants.LOGIN_FAIL, MessageUtils.message("user.password.sso.match")));
throw new UserPasswordSSOFailException();
}
} catch (Exception e) {
AsyncManager.me().execute(AsyncFactory.recordLogininfor(loginBody.getUsername(), Constants.LOGIN_FAIL, MessageUtils.message("user.password.sso.match")));
throw new UserPasswordSSOFailException();
}
return ajax;
}