Commit d24f5fc5 authored by 黎博's avatar 黎博

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

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