作者 钟来

登录鉴权

1 -package com.zhonglai.luhui.api.dto;  
2 -  
3 -import com.alibaba.fastjson.annotation.JSONField;  
4 -import com.ruoyi.common.core.domain.BaseLoginUser;  
5 -import com.ruoyi.system.login.dto.Yu2leUserInfo;  
6 -import com.ruoyi.system.login.dto.Yu2leUserLogin;  
7 -import org.springframework.security.core.GrantedAuthority;  
8 -  
9 -import java.util.Collection;  
10 -  
11 -public class ApiLoginUser extends BaseLoginUser {  
12 - private Yu2leUserInfo userInfo;  
13 -  
14 - private Yu2leUserLogin userLogin;  
15 -  
16 - public ApiLoginUser(Yu2leUserInfo userInfo, Yu2leUserLogin userLogin) {  
17 - this.userInfo = userInfo;  
18 - this.userLogin = userLogin;  
19 - }  
20 -  
21 - @Override  
22 - public Yu2leUserInfo getUser() {  
23 - return userInfo;  
24 - }  
25 -  
26 - @Override  
27 - public Collection<? extends GrantedAuthority> getAuthorities() {  
28 - return null;  
29 - }  
30 -  
31 - @Override  
32 - public String getPassword() {  
33 - return userLogin.getLoginPass();  
34 - }  
35 -  
36 - @Override  
37 - public String getUsername() {  
38 - return userInfo.getLoginName();  
39 - }  
40 -  
41 - /**  
42 - * 账户是否未过期,过期无法验证  
43 - */  
44 - @JSONField(serialize = false)  
45 - @Override  
46 - public boolean isAccountNonExpired() {  
47 - return false;  
48 - }  
49 -  
50 - /**  
51 - * 指定用户是否解锁,锁定的用户无法进行身份验证  
52 - *  
53 - * @return  
54 - */  
55 - @JSONField(serialize = false)  
56 - @Override  
57 - public boolean isAccountNonLocked() {  
58 - return false;  
59 - }  
60 -  
61 - /**  
62 - * 指示是否已过期的用户的凭据(密码),过期的凭据防止认证  
63 - *  
64 - * @return  
65 - */  
66 - @JSONField(serialize = false)  
67 - @Override  
68 - public boolean isCredentialsNonExpired() {  
69 - return false;  
70 - }  
71 -  
72 - /**  
73 - * 是否可用 ,禁用的用户不能身份验证  
74 - *  
75 - * @return  
76 - */  
77 - @JSONField(serialize = false)  
78 - @Override  
79 - public boolean isEnabled() {  
80 - return false;  
81 - }  
82 -  
83 - public void setUserInfo(Yu2leUserInfo userInfo) {  
84 - this.userInfo = userInfo;  
85 - }  
86 -  
87 - public Yu2leUserLogin getUserLogin() {  
88 - return userLogin;  
89 - }  
90 -  
91 - public void setUserLogin(Yu2leUserLogin userLogin) {  
92 - this.userLogin = userLogin;  
93 - }  
94 -}  
@@ -3,10 +3,10 @@ package com.zhonglai.luhui.api.service; @@ -3,10 +3,10 @@ package com.zhonglai.luhui.api.service;
3 import com.ruoyi.common.enums.UserStatus; 3 import com.ruoyi.common.enums.UserStatus;
4 import com.ruoyi.common.exception.ServiceException; 4 import com.ruoyi.common.exception.ServiceException;
5 import com.ruoyi.common.utils.StringUtils; 5 import com.ruoyi.common.utils.StringUtils;
  6 +import com.ruoyi.system.login.dto.ApiLoginUser;
6 import com.ruoyi.system.login.dto.Yu2leUserInfo; 7 import com.ruoyi.system.login.dto.Yu2leUserInfo;
7 import com.ruoyi.system.login.dto.Yu2leUserLogin; 8 import com.ruoyi.system.login.dto.Yu2leUserLogin;
8 import com.ruoyi.system.service.PublicService; 9 import com.ruoyi.system.service.PublicService;
9 -import com.zhonglai.luhui.api.dto.ApiLoginUser;  
10 import org.slf4j.Logger; 10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory; 11 import org.slf4j.LoggerFactory;
12 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,7 +23,7 @@ public class ApiUserDetailsServiceImpl implements UserDetailsService { @@ -23,7 +23,7 @@ public class ApiUserDetailsServiceImpl implements UserDetailsService {
23 @Override 23 @Override
24 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { 24 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
25 Yu2leUserLogin yu2leUserLogin = publicService.getObjectForTableName(Yu2leUserLogin.class,"loginName",username,"`liu_yu_le`.`user_login`"); 25 Yu2leUserLogin yu2leUserLogin = publicService.getObjectForTableName(Yu2leUserLogin.class,"loginName",username,"`liu_yu_le`.`user_login`");
26 - Yu2leUserInfo yu2leUserInfo = null; 26 + Yu2leUserInfo yu2leUserInfo = publicService.getObjectForTableName(Yu2leUserInfo.class,"loginName",username,"`liu_yu_le`.`user_info`");;
27 if (StringUtils.isNull(yu2leUserLogin) || StringUtils.isNull(yu2leUserInfo)) 27 if (StringUtils.isNull(yu2leUserLogin) || StringUtils.isNull(yu2leUserInfo))
28 { 28 {
29 log.info("登录用户:{} 不存在.", username); 29 log.info("登录用户:{} 不存在.", username);
@@ -304,7 +304,7 @@ public class PublicSQL { @@ -304,7 +304,7 @@ public class PublicSQL {
304 { 304 {
305 where += " and "; 305 where += " and ";
306 } 306 }
307 - where += "`"+idnames[i]+"`='"+escapeSql(valuess[i]+"")+"'"; 307 + where += "`"+com.ruoyi.common.utils.StringUtils.toUnderScoreCase(idnames[i])+"`='"+escapeSql(valuess[i]+"")+"'";
308 308
309 } 309 }
310 String sql = "select "+select+" from "+tableName + " where " +where; 310 String sql = "select "+select+" from "+tableName + " where " +where;
1 package com.ruoyi.system.login.dto; 1 package com.ruoyi.system.login.dto;
2 2
3 import com.ruoyi.common.core.domain.BaseLoginUser; 3 import com.ruoyi.common.core.domain.BaseLoginUser;
  4 +import com.ruoyi.common.utils.DESUtil;
  5 +import com.ruoyi.common.utils.SecurityUtils;
4 import org.springframework.security.core.GrantedAuthority; 6 import org.springframework.security.core.GrantedAuthority;
5 7
6 import java.util.Collection; 8 import java.util.Collection;
7 9
8 public class ApiLoginUser extends BaseLoginUser { 10 public class ApiLoginUser extends BaseLoginUser {
9 private static final long serialVersionUID = -2519976444812946707L; 11 private static final long serialVersionUID = -2519976444812946707L;
10 - 12 + private Yu2leUserInfo yu2leUserInfo;
11 private Yu2leUserLogin yu2leUserLogin; 13 private Yu2leUserLogin yu2leUserLogin;
12 14
13 - public ApiLoginUser(Yu2leUserLogin yu2leUserLogin) { 15 + public ApiLoginUser(Yu2leUserInfo yu2leUserInfo,Yu2leUserLogin yu2leUserLogin) {
14 this.yu2leUserLogin = yu2leUserLogin; 16 this.yu2leUserLogin = yu2leUserLogin;
  17 + this.yu2leUserInfo = yu2leUserInfo;
15 } 18 }
16 19
17 @Override 20 @Override
@@ -26,7 +29,7 @@ public class ApiLoginUser extends BaseLoginUser { @@ -26,7 +29,7 @@ public class ApiLoginUser extends BaseLoginUser {
26 29
27 @Override 30 @Override
28 public String getPassword() { 31 public String getPassword() {
29 - return yu2leUserLogin.getLoginPass(); 32 + return SecurityUtils.encryptPassword(DESUtil.decode(yu2leUserLogin.getLoginPass(),yu2leUserLogin.getUserLoginPassKey()));
30 } 33 }
31 34
32 @Override 35 @Override
@@ -61,4 +64,12 @@ public class ApiLoginUser extends BaseLoginUser { @@ -61,4 +64,12 @@ public class ApiLoginUser extends BaseLoginUser {
61 public void setYu2leUserLogin(Yu2leUserLogin yu2leUserLogin) { 64 public void setYu2leUserLogin(Yu2leUserLogin yu2leUserLogin) {
62 this.yu2leUserLogin = yu2leUserLogin; 65 this.yu2leUserLogin = yu2leUserLogin;
63 } 66 }
  67 +
  68 + public Yu2leUserInfo getYu2leUserInfo() {
  69 + return yu2leUserInfo;
  70 + }
  71 +
  72 + public void setYu2leUserInfo(Yu2leUserInfo yu2leUserInfo) {
  73 + this.yu2leUserInfo = yu2leUserInfo;
  74 + }
64 } 75 }
@@ -6,10 +6,7 @@ import com.ruoyi.common.exception.ServiceException; @@ -6,10 +6,7 @@ import com.ruoyi.common.exception.ServiceException;
6 import com.ruoyi.common.exception.user.CaptchaException; 6 import com.ruoyi.common.exception.user.CaptchaException;
7 import com.ruoyi.common.exception.user.CaptchaExpireException; 7 import com.ruoyi.common.exception.user.CaptchaExpireException;
8 import com.ruoyi.common.exception.user.UserPasswordNotMatchException; 8 import com.ruoyi.common.exception.user.UserPasswordNotMatchException;
9 -import com.ruoyi.common.utils.DateUtils;  
10 -import com.ruoyi.common.utils.MessageUtils;  
11 -import com.ruoyi.common.utils.ServletUtils;  
12 -import com.ruoyi.common.utils.StringUtils; 9 +import com.ruoyi.common.utils.*;
13 import com.ruoyi.common.utils.ip.IpUtils; 10 import com.ruoyi.common.utils.ip.IpUtils;
14 import com.ruoyi.system.domain.entity.SysUser; 11 import com.ruoyi.system.domain.entity.SysUser;
15 import com.ruoyi.system.login.dto.ApiLoginUser; 12 import com.ruoyi.system.login.dto.ApiLoginUser;
@@ -84,7 +81,7 @@ public class LoginService { @@ -84,7 +81,7 @@ public class LoginService {
84 public String apiLoginByPass(String user,String pass) { 81 public String apiLoginByPass(String user,String pass) {
85 // 用户验证 82 // 用户验证
86 Authentication authentication = userPasswordVerification(user,pass); 83 Authentication authentication = userPasswordVerification(user,pass);
87 - AsyncManager.me().execute(AsyncFactory.recordLogininfor(user, Constants.LOGIN_SUCCESS, MessageUtils.message("apiuser.login.success"))); 84 + AsyncManager.me().execute(AsyncFactory.recordLogininfor(user, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
88 ApiLoginUser loginUser = (ApiLoginUser) authentication.getPrincipal(); 85 ApiLoginUser loginUser = (ApiLoginUser) authentication.getPrincipal();
89 recordLoginInfo(loginUser.getUserId()); 86 recordLoginInfo(loginUser.getUserId());
90 return tokenService.createToken(loginUser); 87 return tokenService.createToken(loginUser);
@@ -107,7 +104,7 @@ public class LoginService { @@ -107,7 +104,7 @@ public class LoginService {
107 public String yu2leTokenLogin(String token) { 104 public String yu2leTokenLogin(String token) {
108 Yu2leLoginToken loginToken = new Yu2leLoginToken(token); 105 Yu2leLoginToken loginToken = new Yu2leLoginToken(token);
109 Yu2leUserLogin userInfo = publicService.getObjectForTableName(Yu2leUserLogin.class,"id",loginToken.getUserId()+"","`liu_yu_le`.`user_login`"); 106 Yu2leUserLogin userInfo = publicService.getObjectForTableName(Yu2leUserLogin.class,"id",loginToken.getUserId()+"","`liu_yu_le`.`user_login`");
110 - return apiLoginByPass(userInfo.getLoginName(),userInfo.getLoginPass()); 107 + return apiLoginByPass(userInfo.getLoginName(),DESUtil.decode(userInfo.getLoginPass(),userInfo.getUserLoginPassKey()));
111 } 108 }
112 109
113 /** 110 /**
@@ -69,7 +69,7 @@ public interface PublicMapper { @@ -69,7 +69,7 @@ public interface PublicMapper {
69 * @return 69 * @return
70 */ 70 */
71 @SelectProvider(type = PublicSQL.class, method = "getObject") 71 @SelectProvider(type = PublicSQL.class, method = "getObject")
72 - <T> T getObjectForTableName(@Param("class") Class<T> clas, @Param("idName") String idName, @Param("values") String values, @Param("tableName") String tableName); 72 + Map<String,Object> getObjectForTableName(@Param("class") Class<?> clas, @Param("idName") String idName, @Param("values") String values, @Param("tableName") String tableName);
73 73
74 /** 74 /**
75 * 查询 通过条件查询单个指定项目 75 * 查询 通过条件查询单个指定项目
1 package com.ruoyi.system.service.impl; 1 package com.ruoyi.system.service.impl;
2 2
  3 +import com.alibaba.fastjson.JSONObject;
3 import com.ruoyi.system.mapper.PublicMapper; 4 import com.ruoyi.system.mapper.PublicMapper;
4 import com.ruoyi.system.service.PublicService; 5 import com.ruoyi.system.service.PublicService;
5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.beans.factory.annotation.Autowired;
@@ -87,7 +88,13 @@ public class PublicServiceImpl implements PublicService { @@ -87,7 +88,13 @@ public class PublicServiceImpl implements PublicService {
87 */ 88 */
88 public <T> T getObjectForTableName(Class<T> clas, String idName, String values, String tableName) 89 public <T> T getObjectForTableName(Class<T> clas, String idName, String values, String tableName)
89 { 90 {
90 - return publicMapper.getObjectForTableName(clas,idName,values,tableName); 91 +
  92 + Object oj = publicMapper.getObjectForTableName(clas,idName,values,tableName);
  93 + if(null != oj)
  94 + {
  95 + return JSONObject.parseObject(JSONObject.toJSONString(oj),clas);
  96 + }
  97 + return null;
91 } 98 }
92 99
93 /** 100 /**