Commit d24f5fc5 authored by 黎博's avatar 黎博

修改登录相关,新增中文名、有效、title

parent 59d6aa9e
......@@ -48,14 +48,6 @@ public class UserController {
return JsonResult.buildErrorStateResult("用户名或密码错误", false);
}
User user = userService.getUserByUsername(username);
// 用户不存在,则创建新用户
if (user == null) {
User newUser = new User();
newUser.setUsername(username);
newUser.setPassword(DigestUtils.md5DigestAsHex(password.getBytes(StandardCharsets.UTF_8)));
userService.save(newUser);
}
user = userService.getUserByUsername(username);
String token = tokenService.generateToken(user.getId());
Map<String, Object> map = new HashMap<>();
map.put("token", token);
......
......@@ -15,7 +15,11 @@ public class User {
private String username;
private String password;
private String chineseName;
private String email;
private String title;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
......
......@@ -9,6 +9,9 @@ import java.util.Set;
public class UserInfoVo {
private Integer userId;
private String username;
private String chineseName;
private String email;
private String title;
private List<Integer> roleIds;
private Set<String> menuList;
private Set<String> permissionCodeList;
......
package cn.qg.holmes.service.auth;
import java.util.Map;
public interface LdapService {
boolean authenticate(String username, String password);
Map<String, String> getUserInfo();
}
......@@ -15,13 +15,16 @@ import javax.naming.directory.SearchResult;
import javax.naming.ldap.Control;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
@Slf4j
@Service
public class LdapServiceImpl implements LdapService, CommandLineRunner {
private LdapContext ctx = null;
private final Control[] connCtls = null;
private Map<String, String> userInfoMap = new HashMap<>();
private final String BASEDN = "ou=北京量科邦信息技术有限公司,dc=quantgroup,dc=cn";
private final String URL = "ldap://ldap.quantgroups.com:389/";
......@@ -62,6 +65,10 @@ public class LdapServiceImpl implements LdapService, CommandLineRunner {
SearchResult si = (SearchResult) obj;
userDN += si.getName();
userDN += "," + BASEDN;
userInfoMap.put("userDN", userDN);
userInfoMap.put("chineseName", si.getAttributes().get("name").get().toString());
userInfoMap.put("email", email);
userInfoMap.put("title", si.getAttributes().get("title").get().toString());
} else {
System.out.println(obj);
}
......@@ -94,6 +101,11 @@ public class LdapServiceImpl implements LdapService, CommandLineRunner {
return validate;
}
@Override
public Map<String, String> getUserInfo() {
return userInfoMap;
}
@Override
public void run(String... args) throws Exception {
ldapConnect();
......
package cn.qg.holmes.service.auth.impl;
import cn.qg.holmes.entity.auth.User;
import cn.qg.holmes.service.auth.LdapService;
import cn.qg.holmes.service.auth.LoginService;
import cn.qg.holmes.service.auth.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import java.nio.charset.StandardCharsets;
import java.util.Map;
@Slf4j
@Service
......@@ -12,10 +18,26 @@ public class LoginServiceImpl implements LoginService {
@Autowired
LdapService ldapService;
@Autowired
UserService userService;
@Override
public boolean login(String username, String password) {
boolean result = ldapService.authenticate(username, password);
log.info("登录结果为:{}", result);
if (result) {
Map<String, String> userInfo = ldapService.getUserInfo();
User user = userService.getUserByUsername(username);
// 用户不存在,则创建新用户
if (user == null) {
User newUser = new User();
newUser.setUsername(username);
newUser.setChineseName(userInfo.get("chineseName"));
newUser.setEmail(userInfo.get("email"));
newUser.setTitle(userInfo.get("title"));
userService.save(newUser);
}
}
return result;
}
}
......@@ -49,6 +49,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
userQueryWrapper.eq("username", username);
User user = userMapper.selectOne(userQueryWrapper);
userInfoVo.setUserId(user.getId());
userInfoVo.setChineseName(user.getChineseName());
userInfoVo.setEmail(user.getEmail());
userInfoVo.setTitle(user.getTitle());
List<Integer> roleIds = userRoleService.getRoleIdsByUserId(user.getId());
userInfoVo.setRoleIds(roleIds);
Set<String> permissionCodeSet = rolePermissionService.getPermissionSetForRoleIds(roleIds);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment