소스 검색

Merge pull request 'yanyang' (#12) from yanyang into master

Reviewed-on: #12
pull/15/head^2
闫阳 1 년 전
부모
커밋
dd9cff155e
3개의 변경된 파일23개의 추가작업 그리고 10개의 파일을 삭제
  1. +11
    -10
      ym-admin/src/main/java/com/cnbm/admin/base/BaseSupport.java
  2. +2
    -0
      ym-admin/src/main/java/com/cnbm/admin/entity/LoginUser.java
  3. +10
    -0
      ym-admin/src/main/java/com/cnbm/admin/service/impl/LoginServiceImpl.java

+ 11
- 10
ym-admin/src/main/java/com/cnbm/admin/base/BaseSupport.java 파일 보기

@@ -7,6 +7,7 @@ package com.cnbm.admin.base;

import com.alibaba.fastjson.JSON;
import com.cnbm.admin.dto.LoginUserDTO;
import com.cnbm.admin.entity.LoginUser;
import com.cnbm.admin.enums.WhetherEnum;
import lombok.Builder;
import lombok.Data;
@@ -32,18 +33,18 @@ import java.time.LocalDateTime;
@Service
public class BaseSupport {

protected LoginUserDTO getLoginUser() {
protected LoginUser getLoginUser() {
// 后续完善拦截器再使用该方式
// LoginUser loginUser = loginUserHolder.get();
// if (loginUser != null) {
// return loginUser;
// }
HttpSession session = getHttpServletRequest().getSession(false);
LoginUserDTO loginUser = null;
LoginUser loginUser = null;
if (session != null) {
String loginUserJson = (String) session.getAttribute(LoginUserDTO.HTTP_HEADER_NAME);
String loginUserJson = (String) session.getAttribute(LoginUser.HTTP_HEADER_NAME);
if (StringUtils.isNotBlank(loginUserJson)) {
loginUser = JSON.parseObject(loginUserJson, LoginUserDTO.class);
loginUser = JSON.parseObject(loginUserJson, LoginUser.class);
return loginUser;
}
}
@@ -93,11 +94,11 @@ public class BaseSupport {
.enabled(WhetherEnum.YES.getValue())
.valid(WhetherEnum.YES.getValue())
.createTime(LocalDateTime.now())
.creatorId(getLoginUser().getUserId())
.creatorName(getLoginUser().getUserName())
.creatorId(getLoginUser().getSysUserEntity().getId())
.creatorName(getLoginUser().getUsername())
.updateTime(LocalDateTime.now())
.updaterId(getLoginUser().getUserId())
.updaterName(getLoginUser().getUserName())
.updaterId(getLoginUser().getSysUserEntity().getId())
.updaterName(getLoginUser().getUsername())
.build();
BeanUtils.copyProperties(commonField, t, ignoreProperties);
return t;
@@ -117,8 +118,8 @@ public class BaseSupport {
*/
public <T extends Serializable> T setUpdateCommonField(T t) {
CommonField commonField = CommonField.builder()
.updaterId(getLoginUser().getUserId())
.updaterName(getLoginUser().getUserName())
.updaterId(getLoginUser().getSysUserEntity().getId())
.updaterName(getLoginUser().getUsername())
.updateTime(LocalDateTime.now())
.build();
BeanUtils.copyProperties(commonField, t, "enabled", "valid");


+ 2
- 0
ym-admin/src/main/java/com/cnbm/admin/entity/LoginUser.java 파일 보기

@@ -24,6 +24,8 @@ public class LoginUser implements UserDetails{

private static final long serialVersionUID = 1L;

public static final String HTTP_HEADER_NAME = "loginUser";

private SysUserEntity sysUserEntity;

private List<String> permissions;


+ 10
- 0
ym-admin/src/main/java/com/cnbm/admin/service/impl/LoginServiceImpl.java 파일 보기

@@ -1,5 +1,7 @@
package com.cnbm.admin.service.impl;

import com.alibaba.fastjson.JSON;
import com.cnbm.admin.dto.LoginUserDTO;
import com.cnbm.admin.entity.LoginUser;
import com.cnbm.admin.entity.SysLogLoginEntity;
import com.cnbm.admin.enums.LoginOperationEnum;
@@ -22,8 +24,11 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -81,6 +86,11 @@ public class LoginServiceImpl implements LoginService {
map.put("token",jwt);
//把完整的用户信息存入redis userid作为key
redisTemplate.opsForValue().set("login:"+userid,loginUser,1, TimeUnit.DAYS);

//当前登录用户信息存入session中
HttpSession session = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession();
session.setAttribute(loginUser.HTTP_HEADER_NAME, JSON.toJSONString(loginUser));

//登录成功
log.setStatus(LoginStatusEnum.SUCCESS.value());
log.setCreator(loginUser.getSysUserEntity().getId());


불러오는 중...
취소
저장