...
|
...
|
@@ -29,6 +29,7 @@ import org.springframework.web.client.RestTemplate; |
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.imageio.ImageIO;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
import java.awt.image.BufferedImage;
|
|
|
import java.io.ByteArrayOutputStream;
|
...
|
...
|
@@ -167,11 +168,13 @@ public class AnonymousController { |
|
|
*/
|
|
|
ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
|
|
|
String responseBody = responseEntity.getBody();
|
|
|
log.info("[SSO-RESPONSE]-[{}]",responseBody);
|
|
|
|
|
|
try {
|
|
|
JSONObject jsonObject = JSONObject.parseObject(responseBody);
|
|
|
USERS user = parseSSOObject(jsonObject);
|
|
|
if (StringUtils.isNotEmpty(user.getUsername())){
|
|
|
log.info("[SSO-USER]-获取到sso用户名-[{}]",user.getUsername());
|
|
|
USERS loginUser = userService.loadByUsername(user.getUsername());
|
|
|
if (loginUser!=null && loginUser.getUserId()>-1){
|
|
|
log.info("[SSO-AUTH-TICKET]-从认证中心获取到用户[{}]信息,开始设置系统登录认证token",user.getUsername());
|
...
|
...
|
@@ -186,11 +189,11 @@ public class AnonymousController { |
|
|
user.setUserStatus(loginUser.getUserStatus());
|
|
|
user.setState(loginUser.getState());
|
|
|
}else {
|
|
|
assert loginUser != null;
|
|
|
user.setPassword(loginUser.getPassword());
|
|
|
log.info("[SSO-INSERT]-用户不存在,新增SSO用户");
|
|
|
user.setPassword("initSSO");
|
|
|
user.setUserStatus(2);
|
|
|
user.setState(true);
|
|
|
userService.insertSelective(user);
|
|
|
Integer userId = userService.insertSelective(user);
|
|
|
}
|
|
|
//设置用户的TOKEN的有效时间,时间配置在配置文件中设置
|
|
|
int expirationSeconds = 3600*24*7;
|
...
|
...
|
@@ -206,11 +209,13 @@ public class AnonymousController { |
|
|
} catch (JSONException e) {
|
|
|
e.printStackTrace();
|
|
|
log.error("[SSO-AUTH-TICKET-ERR]-单点登录票据解析异常",e);
|
|
|
log.info("[SSO-AUTH-TICKET-ERR]-单点登录票据解析异常",e);
|
|
|
return new ResultJson("400","单点登录票据解析异常",e.getMessage());
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
log.error("[SSO-AUTH-TICKET-ERR]-单点登录票据认证异常",e);
|
|
|
log.info("[SSO-AUTH-TICKET-ERR]-单点登录票据认证异常",e);
|
|
|
}
|
|
|
return new ResultJson("401","单点登录票据认证失败");
|
|
|
}
|
...
|
...
|
@@ -237,26 +242,32 @@ public class AnonymousController { |
|
|
String loginName = attributes.getString(LOGIN_NAME);
|
|
|
String userId = attributes.getString(USER_ID);
|
|
|
String realName = attributes.getString("USER_NAME");
|
|
|
String password = attributes.getString("PWD");
|
|
|
log.info("[SSO-AUTH-TICKET-INFO]-用户:{}/{}",loginName,realName);
|
|
|
|
|
|
// String password = attributes.getString("PWD");
|
|
|
user.setUsername(loginName);
|
|
|
user.setPassword(password);
|
|
|
// user.setPassword(password);
|
|
|
log.info("[SSO-AUTH-TICKET-INFO]-用户:{}/{}/{}",loginName,realName);
|
|
|
// user.setUserId(userId);
|
|
|
}
|
|
|
}
|
|
|
return user;
|
|
|
}
|
|
|
|
|
|
@PostMapping(value = "/ssoUserSynchronization")
|
|
|
@ResponseBody
|
|
|
public ResultMessage ssoUserSynchronization(@RequestBody String jsonString, @RequestHeader Map<String,String> headers, HttpServletRequest request) throws Exception{
|
|
|
log.info("[SSO-USER-SYNCHRONIZATION]-userJson:[{}],headers:[{}]",jsonString,headers);
|
|
|
return new ResultMessage(200,"资源同步测试成功");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 资源同步
|
|
|
* @param map
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
@PostMapping(value = "/userSynchronization")
|
|
|
@ResponseBody
|
|
|
public ResultMessage userSynchronization(@RequestBody Map<String, Object> map){
|
|
|
log.info("[SSO-资源同步]-参数打印:\n{}",map.toString());
|
|
|
//获取action的值,判断是push数据还是删除数据
|
|
|
String action = map.get("action").toString();
|
|
|
if ("user".equals(map.get("resType").toString())){
|
...
|
...
|
@@ -277,15 +288,22 @@ public class AnonymousController { |
|
|
users.setCompanyId(73);
|
|
|
users.setUpdatetime(new Date());
|
|
|
if (StringUtils.isEmpty(users.getUsername())){
|
|
|
return new ResultMessage("402","缺少lognin_name字段信息");
|
|
|
log.info("[资源同步]-缺少lognin_name字段信息");
|
|
|
return new ResultMessage(400,"缺少lognin_name字段信息");
|
|
|
}
|
|
|
if ("push".equals(action)) {
|
|
|
if (loginUser != null){
|
|
|
log.info("通过账号为条件更新");
|
|
|
if ("-1000".equals(userData.getJOB_STATUS())){
|
|
|
users.setState(false);
|
|
|
}else {
|
|
|
users.setState(true);
|
|
|
}
|
|
|
i = userService.updateByUsernameSelective(users);
|
|
|
}else {
|
|
|
if ( StringUtils.isEmpty(users.getPassword())){
|
|
|
return new ResultMessage("402","缺少pwd字段信息");
|
|
|
log.info("[资源同步]-缺少pwd字段信息");
|
|
|
return new ResultMessage(400,"缺少pwd字段信息");
|
|
|
}
|
|
|
users.setCreattime(new Date());
|
|
|
log.info("账号统一认证用户信息不存在可以 [新增]");
|
...
|
...
|
@@ -297,13 +315,13 @@ public class AnonymousController { |
|
|
i= userId;
|
|
|
}
|
|
|
}else if ("recycle".equals(action)){
|
|
|
userService.deleteByUsername(users.getUsername());
|
|
|
log.info("[资源同步]-接收到用户撤销指令,开始删除用户:{},userid:{}",users.getUsername(),userData.getUSER_ID());
|
|
|
i= userService.deleteByUsername(users.getUsername());
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return i > 0 ? new ResultMessage("200","资源同步成功"):new ResultMessage("202", "资源同步失败");
|
|
|
return i > 0 ? new ResultMessage(200,"资源同步成功"):new ResultMessage(200, "资源同步失败");
|
|
|
}
|
|
|
return new ResultMessage("201","不是用户信息");
|
|
|
return new ResultMessage(200,"不是用户信息");
|
|
|
}
|
|
|
} |
...
|
...
|
|