Browse Source

实现仓储在数通智联系统中的无感登录

liwx
liwenxuan 2 years ago
parent
commit
e77ca5046d
  1. 7
      pom.xml
  2. 81
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  3. 3
      src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java
  4. 1
      src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java
  5. 2
      src/main/java/com/dreamchaser/depository_manage/service/UserService.java
  6. 398
      src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java
  7. 57
      src/main/java/com/dreamchaser/depository_manage/utils/Md5Util.java
  8. 6
      src/main/resources/templates/pages/user/login.html

7
pom.xml

@ -254,6 +254,13 @@
<version>1.6.3</version> <version>1.6.3</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.13</version>
</dependency>
</dependencies> </dependencies>

81
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -17,11 +17,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*; import java.util.*;
/** /**
@ -116,6 +122,10 @@ public class PageController {
*/ */
@GetMapping("/login") @GetMapping("/login")
public ModelAndView login(HttpServletRequest request) { public ModelAndView login(HttpServletRequest request) {
String msg = (String)request.getParameter("msg");
if(msg!=null && msg.length()>0){
}
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();
JSONObject captcha = PublicConfig.Captcha(request); JSONObject captcha = PublicConfig.Captcha(request);
String picPath = (String) captcha.get("picPath"); String picPath = (String) captcha.get("picPath");
@ -123,6 +133,9 @@ public class PageController {
mv.addObject("picPath", picPath); mv.addObject("picPath", picPath);
mv.addObject("captchaid", captchaid); mv.addObject("captchaid", captchaid);
mv.addObject("userWxId", ""); mv.addObject("userWxId", "");
if(msg!=null && msg.length()>0){
mv.addObject("msg", msg);
}
mv.setViewName("pages/user/login"); mv.setViewName("pages/user/login");
return mv; return mv;
} }
@ -185,6 +198,74 @@ public class PageController {
} }
/**
* 数通智联无感登录
*
* @param request
* @return
*/
@GetMapping("/insensibleLogin")
public String insensibleLogin(HttpServletRequest request, RedirectAttributes attr) {
long javaTime = System.currentTimeMillis();
ModelAndView mv = new ModelAndView();
Boolean flag = false;
String msg = "";
String userkey1 = (String)request.getParameter("userkey");
String usertoken1 = (String)request.getParameter("usertoken");
String sing1 = (String)request.getParameter("sing");
String time1 = (String)request.getParameter("time");
if (null != userkey1 && userkey1.length() != 0 && null != usertoken1 && usertoken1.length() != 0 && null != sing1 && sing1.length() != 0 && null != time1 && time1.length() != 0){
long time1Long = Long.parseLong(time1);
// 将时间戳转换为LocalDateTime对象
LocalDateTime dateTime1 = LocalDateTime.ofInstant(Instant.ofEpochMilli(javaTime), ZoneId.systemDefault());
LocalDateTime dateTime2 = LocalDateTime.ofInstant(Instant.ofEpochMilli(time1Long), ZoneId.systemDefault());
// 计算时间差
Duration duration = Duration.between(dateTime2, dateTime1);
//Duration duration = Duration.between(dateTime1, dateTime2);
// 获取时间差的毫秒数
long diffMillis = duration.toMillis();
if(diffMillis<5000){//如果间隔时间不超过5秒
String singJava = Md5Util.md5InsensibleLogin(userkey1, usertoken1, time1);
if(sing1.equals(singJava)){//校验通过允许无感登录
flag = true;
}
}else{
msg = "授权请求超时";
}
}else{
msg = "有空参数";
}
if(flag){
//从redis中获取UserByPort数据并构造对象.
Map<String, String> map = new HashMap<>();
map.put("userWxId","");
map.put("username","");
map.put("password","");
map.put("captcha","1");
UserByPort userinfo = userService.getUserByKeyAndToken(userkey1,usertoken1);
if(null != userinfo){
// 设置放入时间
userinfo.setInstant(Instant.now());
// 将登录用户存储到池中保存
AuthenticationTokenPool.addUserToken(usertoken1, userinfo);
// 将key与token设置到session中
request.getSession().setAttribute("userKey", userkey1);
request.getSession().setAttribute("userToken", usertoken1);
request.getSession().setMaxInactiveInterval(3 * 60 * 60);
}else{
msg = "获取用户信息失败";
attr.addAttribute("msg", msg);
return "redirect:/login";
}
}else{
//校验不通过不能登录,弹窗提示失败原因
attr.addAttribute("msg", msg);
return "redirect:/login";
}
return"redirect:/index";
}
/** /**
* 账号注册弃用 * 账号注册弃用
* *

3
src/main/java/com/dreamchaser/depository_manage/entity/UserByPort.java

@ -307,6 +307,9 @@ public class UserByPort {
*/ */
private long term = DEFAULT_TERM; private long term = DEFAULT_TERM;
//version4
private String teamid;
/** /**
* 根据时间判断是否有效 * 根据时间判断是否有效
* *

1
src/main/java/com/dreamchaser/depository_manage/intercepter/UserInterceptor.java

@ -32,6 +32,7 @@ public class UserInterceptor extends HandlerInterceptorAdapter {
add("/getMaterialAll"); add("/getMaterialAll");
add("/getCaptchaid"); add("/getCaptchaid");
add("/loginOut"); add("/loginOut");
add("/insensibleLogin");
} }
}; };
private static RedisPool redisPool; private static RedisPool redisPool;

2
src/main/java/com/dreamchaser/depository_manage/service/UserService.java

@ -104,4 +104,6 @@ public interface UserService {
* @return * @return
*/ */
Boolean isUserNeiQin(Long id); Boolean isUserNeiQin(Long id);
UserByPort getUserByKeyAndToken(String userkey1, String usertoken1);
} }

398
src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java

@ -1,19 +1,20 @@
package com.dreamchaser.depository_manage.service.impl; package com.dreamchaser.depository_manage.service.impl;
import com.dreamchaser.depository_manage.config.PublicConfig;
import com.dreamchaser.depository_manage.entity.Administration; import com.dreamchaser.depository_manage.entity.Administration;
import com.dreamchaser.depository_manage.entity.UserByPort; import com.dreamchaser.depository_manage.entity.UserByPort;
import com.dreamchaser.depository_manage.hrNew_mapper.AdministrativeMapper; import com.dreamchaser.depository_manage.hrNew_mapper.AdministrativeMapper;
import com.dreamchaser.depository_manage.hrNew_mapper.UserMapper; import com.dreamchaser.depository_manage.hrNew_mapper.UserMapper;
import com.dreamchaser.depository_manage.intercepter.UserInterceptor;
import com.dreamchaser.depository_manage.pojo.UserByPortP; import com.dreamchaser.depository_manage.pojo.UserByPortP;
import com.dreamchaser.depository_manage.security.pool.RedisPool;
import com.dreamchaser.depository_manage.service.AdministrativeService; import com.dreamchaser.depository_manage.service.AdministrativeService;
import com.dreamchaser.depository_manage.service.UserService; import com.dreamchaser.depository_manage.service.UserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service @Service
public class UserServiceImpl implements UserService { public class UserServiceImpl implements UserService {
@ -24,6 +25,16 @@ public class UserServiceImpl implements UserService {
@Autowired @Autowired
private AdministrativeService administrativeService; private AdministrativeService administrativeService;
private static RedisPool redisPool;
private static RedisTemplate<String,String> redisTemplate;
@Autowired
public void setRedisTemplate(RedisPool redisPool) {
UserServiceImpl.redisPool = redisPool;
}
@Autowired
public void setRedisTemplate(RedisTemplate<String,String> redisTemplate){UserServiceImpl.redisTemplate = redisTemplate;}
/** /**
* 通过id获取用户信息(包装) * 通过id获取用户信息(包装)
@ -210,6 +221,385 @@ public class UserServiceImpl implements UserService {
return flag; return flag;
} }
/**
* 根据userkey和usertoken获取UserByPort
* @param userkey1
* @param usertoken1
* @return
*/
@Override
public UserByPort getUserByKeyAndToken(String userkey1, String usertoken1) {
Boolean flag = false;
int count = 0;
String usernumber = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(PublicConfig.LoginRedisPrefix+userkey1,"usernumber");
UserByPort userByPort = new UserByPort();
if(usernumber!=null && usernumber.length()>0){
String redis5UserInfoKey = PublicConfig.userInfoRedisPrefix+usernumber;
Set keys1 = redisPool.getRedisTemplateByDb(5).boundHashOps(redis5UserInfoKey).keys();
if(keys1.size()>0){
for(Object item:keys1){
//System.out.println(item.toString());
String mykey = item.toString();
if(mykey != null && mykey.length() > 0){
count++;
switch(mykey){
case "jobstartdate" :
String jobstartdate = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"jobstartdate");
if(null != jobstartdate && jobstartdate.length()>0){
long jobstartdateLong = Long.parseLong(jobstartdate);
userByPort.setJobstartdate(jobstartdateLong);
}
break;
case "idcardaddress" :
String idcardaddress = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"idcardaddress");
if(null != idcardaddress && idcardaddress.length()>0){
userByPort.setIdcardaddress(idcardaddress);
}
break;
case "idcardstartdate" :
String idcardstartdate = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"idcardstartdate");
if(null != idcardstartdate && idcardstartdate.length()>0){
long idcardstartdateLong = Long.parseLong(idcardstartdate);
userByPort.setIdcardstartdate(idcardstartdateLong);
}
break;
case "maindeparment" :
String maindeparment = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"maindeparment");
if(null != maindeparment && maindeparment.length()>0){
long longstr = Long.parseLong(maindeparment);
userByPort.setMaindeparment(longstr);
}
break;
case "probationperiod" :
String probationperiod = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"probationperiod");
if(null != probationperiod && probationperiod.length()>0){
Integer strInt = Integer.parseInt(probationperiod);
userByPort.setProbationperiod(strInt);
}
break;
case "adminorg" :
String adminorg = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"adminorg");
if(null != adminorg && adminorg.length()>0){
long longstr = Long.parseLong(adminorg);
userByPort.setAdminorg(longstr);
}
break;
case "isveterans" :
String isveterans = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"isveterans");
if(null != isveterans && isveterans.length()>0){
Integer strInt = Integer.parseInt(isveterans);
userByPort.setIsveterans(strInt);
}
break;
case "jobid" :
String jobid = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"jobid");
if(null != jobid && jobid.length()>0){
long longstr = Long.parseLong(jobid);
userByPort.setJobid(longstr);
}
break;
case "number" :
String number = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"number");
if(null != number && number.length()>0){
userByPort.setNumber(number);
}
break;
case "password" :
String password = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"password");
if(null != password && password.length()>0){
userByPort.setPassword(password);
}
break;
case "veteransnumber" :
String veteransnumber = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"veteransnumber");
if(null != veteransnumber && veteransnumber.length()>0){
userByPort.setVeteransnumber(veteransnumber);
}
break;
case "deparment" :
String deparment = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"deparment");
if(null != deparment && deparment.length()>0){
userByPort.setDeparment(deparment);
}
break;
case "mobilephone" :
String mobilephone = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"mobilephone");
if(null != mobilephone && mobilephone.length()>0){
userByPort.setMobilephone(mobilephone);
}
break;
case "teamid" :
String teamid = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"teamid");
if(null != teamid && teamid.length()>0){
userByPort.setTeamid(teamid);
}
break;
case "id" :
String id = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"id");
if(null != id && id.length()>0){
long longstr = Long.parseLong(id);
userByPort.setId(longstr);
}
break;
case "nativeplace" :
String nativeplace = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"nativeplace");
if(null != nativeplace && nativeplace.length()>0){
userByPort.setNativeplace(nativeplace);
}
break;
case "state" :
String state = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"state");
if(null != state && state.length()>0){
Integer strInt = Integer.parseInt(state);
userByPort.setState(strInt);
}
break;
case "internaltelephone" :
String internaltelephone = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"internaltelephone");
if(null != internaltelephone && internaltelephone.length()>0){
userByPort.setInternaltelephone(internaltelephone);
}
break;
case "sunmaindeparment" :
String sunmaindeparment = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"sunmaindeparment");
if(null != sunmaindeparment && sunmaindeparment.length()>0){
long longstr = Long.parseLong(sunmaindeparment);
userByPort.setSunmaindeparment(longstr);
}
break;
case "currentresidence" :
String currentresidence = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"currentresidence");
if(null != currentresidence && currentresidence.length()>0){
userByPort.setCurrentresidence(currentresidence);
}
break;
case "positionname" :
String positionname = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"positionname");
if(null != positionname && positionname.length()>0){
userByPort.setPositionname(positionname);
}
break;
case "hireclass" :
String hireclass = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"hireclass");
if(null != hireclass && hireclass.length()>0){
Integer strInt = Integer.parseInt(hireclass);
userByPort.setHireclass(strInt);
}
break;
case "jobclass" :
String jobclass = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"jobclass");
if(null != jobclass && jobclass.length()>0){
Integer strInt = Integer.parseInt(jobclass);
userByPort.setJobclass(strInt);
}
break;
case "political_outlook" :
String political_outlook = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"political_outlook");
if(null != political_outlook && political_outlook.length()>0){
Integer strInt = Integer.parseInt(political_outlook);
userByPort.setPoliticaloutlook(strInt);
}
break;
case "emptype" :
String emptype = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"emptype");
if(null != emptype && emptype.length()>0){
Integer strInt = Integer.parseInt(emptype);
userByPort.setEmptype(strInt);
}
break;
case "maritalstatus" :
String maritalstatus = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"maritalstatus");
if(null != maritalstatus && maritalstatus.length()>0){
Integer strInt = Integer.parseInt(maritalstatus);
userByPort.setMaritalstatus(strInt);
}
break;
case "companyname" :
String companyname = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"companyname");
if(null != companyname && companyname.length()>0){
userByPort.setCompanyname(companyname);
}
break;
case "name" :
String name = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"name");
if(null != name && name.length()>0){
userByPort.setName(name);
}
break;
case "position" :
String position = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"position");
if(null != position && position.length()>0){
long longstr = Long.parseLong(position);
userByPort.setPosition(longstr);
}
break;
case "birthday" :
String birthday = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"birthday");
if(null != birthday && birthday.length()>0){
long longstr = Long.parseLong(birthday);
userByPort.setBirthday(longstr);
}
break;
case "passportno" :
String passportno = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"passportno");
if(null != passportno && passportno.length()>0){
userByPort.setPassportno(passportno);
}
break;
case "planformaldate" :
String planformaldate = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"planformaldate");
if(null != planformaldate && planformaldate.length()>0){
long longstr = Long.parseLong(planformaldate);
userByPort.setPlanformaldate(longstr);
}
break;
case "globalroaming" :
String globalroaming = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"globalroaming");
if(null != globalroaming && globalroaming.length()>0){
userByPort.setGlobalroaming(globalroaming);
}
break;
case "role" :
String role = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"role");
if(null != role && role.length()>0){
userByPort.setRole(role);
}
break;
case "gender" :
String gender = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"gender");
if(null != gender && gender.length()>0){
Integer strInt = Integer.parseInt(gender);
userByPort.setGender(strInt);
}
break;
case "constellationing" :
String constellationing = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"constellationing");
if(null != constellationing && constellationing.length()>0){
Integer strInt = Integer.parseInt(constellationing);
userByPort.setConstellationing(strInt);
}
break;
case "icon" :
String icon = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"icon");
if(null != icon && icon.length()>0){
userByPort.setIcon(icon);
}
break;
case "entrydate" :
String entrydate = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"entrydate");
if(null != entrydate && entrydate.length()>0){
long longstr = Long.parseLong(entrydate);
userByPort.setEntrydate(longstr);
}
break;
case "isadmin" :
String isadmin = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"isadmin");
if(null != isadmin && isadmin.length()>0){
Integer strInt = Integer.parseInt(isadmin);
userByPort.setIsadmin(strInt);
}
break;
case "maindeparmentname" :
String maindeparmentname = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"maindeparmentname");
if(null != maindeparmentname && maindeparmentname.length()>0){
userByPort.setMaindeparmentname(maindeparmentname);
}
break;
case "company" :
String company = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"company");
if(null != company && company.length()>0){
long longstr = Long.parseLong(company);
userByPort.setCompany(longstr);
}
break;
case "email" :
String email = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"email");
if(null != email && email.length()>0){
userByPort.setEmail(email);
}
break;
case "key" :
String key = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"key");
if(null != key && key.length()>0){
long longstr = Long.parseLong(key);
userByPort.setKey(longstr);
}
break;
case "isdoubleworker" :
String isdoubleworker = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"isdoubleworker");
if(null != isdoubleworker && isdoubleworker.length()>0){
Integer strInt = Integer.parseInt(isdoubleworker);
userByPort.setIsdoubleworker(strInt);
}
break;
case "wechat" :
String wechat = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"wechat");
if(null != wechat && wechat.length()>0){
userByPort.setWechat(wechat);
}
break;
case "workwechat" :
String workwechat = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"workwechat");
if(null != workwechat && workwechat.length()>0){
userByPort.setWorkwechat(workwechat);
}
break;
case "health" :
String health = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"health");
if(null != health && health.length()>0){
Integer strInt = Integer.parseInt(health);
userByPort.setHealth(strInt);
}
break;
case "idcardno" :
String idcardno = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"idcardno");
if(null != idcardno && idcardno.length()>0){
userByPort.setIdcardno(idcardno);
}
break;
case "myfolk" :
String myfolk = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"myfolk");
if(null != myfolk && myfolk.length()>0){
userByPort.setMyfolk(myfolk);
}
break;
case "idcardIssued" :
String idcardIssued = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"idcardIssued");
if(null != idcardIssued && idcardIssued.length()>0){
userByPort.setIdcardIssued(idcardIssued);
}
break;
case "idcardenddate" :
String idcardenddate = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"idcardenddate");
if(null != idcardenddate && idcardenddate.length()>0){
long longstr = Long.parseLong(idcardenddate);
userByPort.setIdcardenddate(longstr);
}
break;
case "jobleve" :
String jobleve = (String) redisPool.getRedisTemplateByDb(5).opsForHash().get(redis5UserInfoKey,"jobleve");
if(null != jobleve && jobleve.length()>0){
Integer strInt = Integer.parseInt(jobleve);
userByPort.setJobleve(strInt);
}
break;
}
}
}
if(count>0){
flag = true;
}
}
}
if(flag){
return userByPort;
}else{
return null;
}
}
public UserByPort packForOne(UserByPort userByPort) { public UserByPort packForOne(UserByPort userByPort) {
// 获取当前用户所处部门 // 获取当前用户所处部门

57
src/main/java/com/dreamchaser/depository_manage/utils/Md5Util.java

@ -0,0 +1,57 @@
package com.dreamchaser.depository_manage.utils;
// 此处需要引入 commons-codec-1.13.jar
import org.apache.commons.codec.binary.Hex;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* Created by Miracle Luna on 2019/11/18
*/
public class Md5Util {
/**
* 将数据进行 MD5 加密并以16进制字符串格式输出
* @param data
* @return
*/
public static String md5(String data) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
return Hex.encodeHexString(md.digest(data.getBytes(StandardCharsets.UTF_8)));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
public static String md5InsensibleLogin(String userkey1,String usertoken1,String time1){
/**
* ## 加密规则
*
* ```
* 1分解步骤
* one = md5(CodeString)+md5(AppKey)
* two = md5(one)+AppKey
* therr = md5(two)
* 2合并
* md5(md5(md5(CodeString)+md5(AppKey))+AppKey)
* ```
*/
String codeString = userkey1+usertoken1+time1;
String result = "";
String appKey = "heng_xin_gao_ke_AppKey";
String one = md5(codeString)+md5(appKey);
String two = md5(one)+appKey;
result = md5(two);
return result;
}
/*public static void main(String[] args) {
String password = "password";
String md5HexStr = md5(password);
System.out.println("==> MD5 加密前: " + password);
System.out.println("==> MD5 加密后: " + md5HexStr);
}*/
}

6
src/main/resources/templates/pages/user/login.html

@ -188,7 +188,7 @@
</button> </button>
</div> </div>
</form> </form>
<input id="autoflag" type="hidden" th:value="${msg}">
</div> </div>
</div> </div>
<div id="login_panle" style="display:none;" > <div id="login_panle" style="display:none;" >
@ -207,6 +207,10 @@
<script src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.4.js"></script> <script src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.4.js"></script>
<script> <script>
layui.use(['layer', 'form'], function () { layui.use(['layer', 'form'], function () {
var passflag=$("#autoflag").val();
if(passflag!=""){
alert(passflag);
}
var form = layui.form, var form = layui.form,
layer = layui.layer; layer = layui.layer;

Loading…
Cancel
Save