Commit 5e0ff5ae authored by xiaozhe.chen's avatar xiaozhe.chen

添加role相关的类

parent 16c9f9af
package cn.quantgroup.cashloanflowboss.api.log.service; package cn.quantgroup.cashloanflowboss.api.log.service;
import cn.quantgroup.cashloanflowboss.api.role.entity.boss.Permission;
import cn.quantgroup.cashloanflowboss.api.user.dictionary.UserStatus; import cn.quantgroup.cashloanflowboss.api.user.dictionary.UserStatus;
import cn.quantgroup.cashloanflowboss.api.user.entity.boss.User; import cn.quantgroup.cashloanflowboss.api.user.entity.boss.User;
import cn.quantgroup.cashloanflowboss.api.user.service.UserService; import cn.quantgroup.cashloanflowboss.api.user.service.UserService;
import cn.quantgroup.cashloanflowboss.component.security.Authority; import cn.quantgroup.cashloanflowboss.api.user.service.UserSessionService;
import cn.quantgroup.cashloanflowboss.core.asserts.Assert; import cn.quantgroup.cashloanflowboss.core.asserts.Assert;
import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationDictionary; import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationDictionary;
import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus; import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus;
import cn.quantgroup.cashloanflowboss.utils.JSONTools;
import cn.quantgroup.cashloanflowboss.utils.MD5Tools; import cn.quantgroup.cashloanflowboss.utils.MD5Tools;
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 javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Arrays;
/** /**
* Created by WeiWei on 2019/7/22. * Created by WeiWei on 2019/7/22.
...@@ -27,6 +23,8 @@ public class LogService { ...@@ -27,6 +23,8 @@ public class LogService {
@Autowired @Autowired
private UserService userService; private UserService userService;
@Autowired
private UserSessionService userSessionService;
@Autowired @Autowired
private HttpServletRequest request; private HttpServletRequest request;
...@@ -51,13 +49,8 @@ public class LogService { ...@@ -51,13 +49,8 @@ public class LogService {
// 检查密码是否正确 // 检查密码是否正确
Assert.isFalse(user.getPassword().equalsIgnoreCase(MD5Tools.md5(password)), ApplicationStatus.USERNAME_OR_PASSWORD_ERROR); Assert.isFalse(user.getPassword().equalsIgnoreCase(MD5Tools.md5(password)), ApplicationStatus.USERNAME_OR_PASSWORD_ERROR);
HttpSession session = this.request.getSession(true); // set user session info
userSessionService.setUserSessionInfo(user);
Permission permission = new Permission();
permission.setId("Log.logout");
permission.setAuthorities(Arrays.asList(Authority.READ));
session.setAttribute(ApplicationDictionary.SECURITY_KEY, JSONTools.serialize(Arrays.asList(permission)));
return true; return true;
......
...@@ -3,6 +3,7 @@ package cn.quantgroup.cashloanflowboss.api.role.entity.boss; ...@@ -3,6 +3,7 @@ package cn.quantgroup.cashloanflowboss.api.role.entity.boss;
import cn.quantgroup.cashloanflowboss.core.persistence.Primary; import cn.quantgroup.cashloanflowboss.core.persistence.Primary;
import lombok.Data; import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.Table; import javax.persistence.Table;
...@@ -11,8 +12,9 @@ import javax.persistence.Table; ...@@ -11,8 +12,9 @@ import javax.persistence.Table;
@Table(name = "role_user") @Table(name = "role_user")
public class RoleUser extends Primary { public class RoleUser extends Primary {
@Column(name = "role_id")
private Long roleId; private Long roleId;
@Column(name = "user_id")
private Long userId; private Long userId;
......
...@@ -20,6 +20,9 @@ public class RoleService { ...@@ -20,6 +20,9 @@ public class RoleService {
public Role findRoleByUserId(Long userId) { public Role findRoleByUserId(Long userId) {
RoleUser roleUser = roleUserRepository.findByUserId(userId); RoleUser roleUser = roleUserRepository.findByUserId(userId);
if (null == roleUser) {
return null;
}
Long roleId = roleUser.getRoleId(); Long roleId = roleUser.getRoleId();
Role role = findRoleByRoleId(roleId); Role role = findRoleByRoleId(roleId);
return role; return role;
......
package cn.quantgroup.cashloanflowboss.api.test.controller; package cn.quantgroup.cashloanflowboss.api.test.controller;
import cn.quantgroup.cashloanflowboss.api.user.entity.boss.User; import cn.quantgroup.cashloanflowboss.api.user.model.UserSessionInfo;
import cn.quantgroup.cashloanflowboss.api.user.service.UserService; import cn.quantgroup.cashloanflowboss.api.user.service.UserService;
import cn.quantgroup.cashloanflowboss.api.user.service.UserSessionService;
import cn.quantgroup.cashloanflowboss.core.base.Result; import cn.quantgroup.cashloanflowboss.core.base.Result;
import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus; import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -15,10 +16,12 @@ public class TestController { ...@@ -15,10 +16,12 @@ public class TestController {
@Autowired @Autowired
private UserService userService; private UserService userService;
@Autowired
private UserSessionService userSessionService;
@GetMapping("/user/info") @GetMapping("/user/info")
public Result findUserFromSession() { public Result findUserFromSession() {
User currentUser = userService.findCurrentUser(); UserSessionInfo userSessionInfo = userService.findUserSessionInfo();
return new Result<>(ApplicationStatus.SUCCESS, currentUser); return new Result<>(ApplicationStatus.SUCCESS, userSessionInfo);
} }
} }
package cn.quantgroup.cashloanflowboss.api.user.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
@AllArgsConstructor
public class RoleInfo {
private Long roleId;
private String roleName;
}
package cn.quantgroup.cashloanflowboss.api.user.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
@AllArgsConstructor
public class UserInfo {
private Long userId;
private String userName;
}
package cn.quantgroup.cashloanflowboss.api.user.model; package cn.quantgroup.cashloanflowboss.api.user.model;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@Data @Data
@Builder @Builder
@AllArgsConstructor
public class UserSessionInfo { public class UserSessionInfo {
private String userName; private UserInfo userInfo;
private String roleName; private RoleInfo roleInfo;
private Long channelId; private Long channelId;
} }
...@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.api.user.service; ...@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.api.user.service;
import cn.quantgroup.cashloanflowboss.api.user.dictionary.UserStatus; import cn.quantgroup.cashloanflowboss.api.user.dictionary.UserStatus;
import cn.quantgroup.cashloanflowboss.api.user.entity.boss.User; import cn.quantgroup.cashloanflowboss.api.user.entity.boss.User;
import cn.quantgroup.cashloanflowboss.api.user.model.UserSessionInfo;
import cn.quantgroup.cashloanflowboss.api.user.repository.boss.UserRepository; import cn.quantgroup.cashloanflowboss.api.user.repository.boss.UserRepository;
import cn.quantgroup.cashloanflowboss.core.asserts.Assert; import cn.quantgroup.cashloanflowboss.core.asserts.Assert;
import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationDictionary; import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationDictionary;
...@@ -137,12 +138,12 @@ public class UserService { ...@@ -137,12 +138,12 @@ public class UserService {
} }
public User findCurrentUser() { public UserSessionInfo findUserSessionInfo() {
HttpSession session = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession(); HttpSession session = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession();
Assert.isNull(session.getAttribute(ApplicationDictionary.USER_KEY), ApplicationStatus.INVALID_USER); Assert.isNull(session.getAttribute(ApplicationDictionary.USER_KEY), ApplicationStatus.INVALID_USER);
User user = JSONTools.deserialize(String.valueOf(session.getAttribute(ApplicationDictionary.USER_KEY)), new TypeReference<User>() { UserSessionInfo userSessionInfo = JSONTools.deserialize(String.valueOf(session.getAttribute(ApplicationDictionary.USER_KEY)), new TypeReference<UserSessionInfo>() {
}); });
return user; return userSessionInfo;
} }
} }
package cn.quantgroup.cashloanflowboss.api.user.service; package cn.quantgroup.cashloanflowboss.api.user.service;
import cn.quantgroup.cashloanflowboss.api.role.entity.boss.Permission;
import cn.quantgroup.cashloanflowboss.api.role.entity.boss.Role;
import cn.quantgroup.cashloanflowboss.api.role.service.RoleService;
import cn.quantgroup.cashloanflowboss.api.user.entity.boss.User; import cn.quantgroup.cashloanflowboss.api.user.entity.boss.User;
import cn.quantgroup.cashloanflowboss.api.user.model.RoleInfo;
import cn.quantgroup.cashloanflowboss.api.user.model.UserInfo;
import cn.quantgroup.cashloanflowboss.api.user.model.UserSessionInfo; import cn.quantgroup.cashloanflowboss.api.user.model.UserSessionInfo;
import cn.quantgroup.cashloanflowboss.component.security.Authority;
import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationDictionary; import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationDictionary;
import cn.quantgroup.cashloanflowboss.utils.JSONTools; import cn.quantgroup.cashloanflowboss.utils.JSONTools;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import java.util.Arrays;
@Slf4j @Slf4j
@Service @Service
public class UserSessionService { public class UserSessionService {
@Autowired
private RoleService roleService;
public void setUserSessionInfo(User user) { public void setUserSessionInfo(User user) {
HttpSession session = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession(); //set user,role,channel or permission info
session.setAttribute(ApplicationDictionary.USER_KEY, JSONTools.serialize(user)); Role role = roleService.findRoleByUserId(user.getId());
//query user role info String roleName = null, userName = user.getUsername();
Long roleId = null, userId = user.getId();
if (null != role) {
roleName = role.getName();
roleId = role.getId();
}
//UserSessionInfo.builder() UserSessionInfo userSessionInfo = UserSessionInfo.builder()
// .userName(user.getUsername()) .roleInfo(RoleInfo.builder().roleId(roleId).roleName(roleName).build())
// .roleName() .userInfo(UserInfo.builder().userId(userId).userName(userName).build())
.build();
HttpSession session = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession();
session.setAttribute(ApplicationDictionary.USER_KEY, JSONTools.serialize(userSessionInfo));
//todo permission后续放入UserSessionInfo结构中吧
Permission permission = new Permission();
permission.setId("Log.logout");
permission.setAuthorities(Arrays.asList(Authority.READ));
session.setAttribute(ApplicationDictionary.SECURITY_KEY, JSONTools.serialize(Arrays.asList(permission)));
} }
......
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