From fd91bd15caf8fea0a743cd2bd9cda47078094319 Mon Sep 17 00:00:00 2001 From: lensferno Date: Thu, 18 Aug 2022 11:55:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=9D=83=E9=99=90=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E7=9A=84=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 9 ++ .../java/net/lensfrex/dscape/ServerMain.java | 4 +- .../dscape/auth/StpInterfaceImpl.java | 84 ++++++++++++++++++- .../dscape/dao/entity/ComputeHistory.java | 2 +- .../dscape/dao/entity/RolePermission.java | 52 ++++++++++++ .../lensfrex/dscape/dao/entity/UserRole.java | 52 ++++++++++++ .../dao/mapper/RolePermissionMapper.java | 15 ++++ .../dscape/dao/mapper/UserRoleMapper.java | 15 ++++ .../dao/service/RolePermissionService.java | 22 +++++ .../dscape/dao/service/UserRoleService.java | 19 +++++ .../impl/RolePermissionServiceImpl.java | 51 +++++++++++ .../dao/service/impl/UserRoleServiceImpl.java | 37 ++++++++ .../dto/request/UserLoginRequestBody.java | 15 ++++ .../dscape/web/controllers/Error.java | 8 +- .../{Compute.java => ComputeController.java} | 2 +- .../{History.java => HistoryController.java} | 2 +- .../user/{User.java => UserController.java} | 21 ++++- .../{Admin.java => AdminController.java} | 4 +- .../dscape/web/service/user/UserService.java | 18 ++++ src/main/resources/application.yml | 15 +++- .../net/lensfrex/dscape/test/TestMain.java | 20 +++++ 21 files changed, 448 insertions(+), 19 deletions(-) create mode 100644 src/main/java/net/lensfrex/dscape/dao/entity/RolePermission.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/entity/UserRole.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/mapper/RolePermissionMapper.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/mapper/UserRoleMapper.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/service/RolePermissionService.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/service/UserRoleService.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/service/impl/RolePermissionServiceImpl.java create mode 100644 src/main/java/net/lensfrex/dscape/dao/service/impl/UserRoleServiceImpl.java create mode 100644 src/main/java/net/lensfrex/dscape/dto/request/UserLoginRequestBody.java rename src/main/java/net/lensfrex/dscape/web/controllers/compute/{Compute.java => ComputeController.java} (93%) rename src/main/java/net/lensfrex/dscape/web/controllers/history/{History.java => HistoryController.java} (94%) rename src/main/java/net/lensfrex/dscape/web/controllers/user/{User.java => UserController.java} (57%) rename src/main/java/net/lensfrex/dscape/web/controllers/user/admin/{Admin.java => AdminController.java} (93%) create mode 100644 src/main/java/net/lensfrex/dscape/web/service/user/UserService.java create mode 100644 src/test/java/net/lensfrex/dscape/test/TestMain.java diff --git a/pom.xml b/pom.xml index 6fc0353..ac6c270 100644 --- a/pom.xml +++ b/pom.xml @@ -127,6 +127,15 @@ lombok + + org.springframework.boot + spring-boot-starter-data-redis + + + org.apache.commons + commons-pool2 + + diff --git a/src/main/java/net/lensfrex/dscape/ServerMain.java b/src/main/java/net/lensfrex/dscape/ServerMain.java index 5ca5704..f38b681 100644 --- a/src/main/java/net/lensfrex/dscape/ServerMain.java +++ b/src/main/java/net/lensfrex/dscape/ServerMain.java @@ -4,9 +4,11 @@ import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.ComponentScans; @SpringBootApplication -@MapperScan("net.lensfrex.dscape.module.dao.mappers") +@MapperScan("net.lensfrex.dscape.dao.mapper") public class ServerMain extends SpringBootServletInitializer { public static void main(String[] args) { diff --git a/src/main/java/net/lensfrex/dscape/auth/StpInterfaceImpl.java b/src/main/java/net/lensfrex/dscape/auth/StpInterfaceImpl.java index b1720cc..5679fe1 100644 --- a/src/main/java/net/lensfrex/dscape/auth/StpInterfaceImpl.java +++ b/src/main/java/net/lensfrex/dscape/auth/StpInterfaceImpl.java @@ -1,19 +1,97 @@ package net.lensfrex.dscape.auth; import cn.dev33.satoken.stp.StpInterface; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import net.lensfrex.dscape.dao.entity.RolePermission; +import net.lensfrex.dscape.dao.entity.UserRole; +import net.lensfrex.dscape.dao.service.RolePermissionService; +import net.lensfrex.dscape.dao.service.UserRoleService; +import net.lensfrex.dscape.dao.service.impl.UserRoleServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.List; +@Slf4j @Component public class StpInterfaceImpl implements StpInterface { + + private final UserRoleService userRoleService; + private final RolePermissionService rolePermissionService; + + private final RedisTemplate redis; + + @Autowired + public StpInterfaceImpl(RedisTemplate redis, + UserRoleService userRoleService, + RolePermissionService rolePermissionService) { + + this.userRoleService = userRoleService; + this.rolePermissionService = rolePermissionService; + this.redis = redis; + } + + @Override public List getPermissionList(Object loginId, String loginType) { - return null; + String uid = (String) loginId; + + List userRoles = this.getRoleList(loginId, loginType); + List rolePermissions = new ArrayList<>(); + + for (String role : userRoles) { + String redisRolePermissionKey = "dscape:auth:role.permission:" + role; + + if (Boolean.FALSE.equals(redis.hasKey(redisRolePermissionKey))) { + log.debug("角色 " + uid + " 的权限信息缓存不存在,从数据库中查找并放入缓存"); + + rolePermissions.addAll(rolePermissionService.getPermissions(role)); + if (rolePermissions.isEmpty()) { + return rolePermissions; + } + + redis.opsForList().leftPushAll(redisRolePermissionKey, rolePermissions); + } else { + List cachedUserRole = redis.opsForList().range(redisRolePermissionKey, 0, -1); + if (cachedUserRole == null) { + return rolePermissions; + } + + rolePermissions.addAll(cachedUserRole); + } + } + + return rolePermissions; } @Override public List getRoleList(Object loginId, String loginType) { - return null; + String uid = (String) loginId; + String redisUserRoleKey = "dscape:auth:user.role:" + uid; + + List userRoleList = new ArrayList<>(2); + if (Boolean.FALSE.equals(redis.hasKey(redisUserRoleKey))) { + log.debug("用户 " + uid + " 的角色信息缓存不存在,从数据库中查找并放入缓存"); + + userRoleList.addAll(userRoleService.getRoles(uid)); + + if (userRoleList.isEmpty()) { + return userRoleList; + } + + redis.opsForList().leftPushAll(redisUserRoleKey, userRoleList); + } else { + List cachedUserRole = redis.opsForList().range(redisUserRoleKey, 0, -1); + if (cachedUserRole == null) { + return userRoleList; + } + + userRoleList.addAll(cachedUserRole); + } + + return userRoleList; } -} +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java b/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java index 00f4a84..c01f423 100644 --- a/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java +++ b/src/main/java/net/lensfrex/dscape/dao/entity/ComputeHistory.java @@ -15,10 +15,10 @@ public class ComputeHistory implements Serializable { private static final long serialVersionUID = 1L; - @TableId(type = IdType.AUTO) /** * id */ + @TableId(type = IdType.AUTO) private Integer id; /** diff --git a/src/main/java/net/lensfrex/dscape/dao/entity/RolePermission.java b/src/main/java/net/lensfrex/dscape/dao/entity/RolePermission.java new file mode 100644 index 0000000..a934fd5 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/entity/RolePermission.java @@ -0,0 +1,52 @@ +package net.lensfrex.dscape.dao.entity; + +import lombok.Data; + +import java.time.LocalDateTime; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; + +/** + * @description role_permission + * @author lensfrex + * @date 2022-08-17 + */ +@Data +public class RolePermission implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.AUTO) + /** + * id + */ + private Long id; + + /** + * 角色id + */ + private Integer role; + + /** + * 权限id + */ + private Integer permission; + + /** + * create_time + */ + private LocalDateTime createTime; + + /** + * edit_time + */ + private LocalDateTime editTime; + + /** + * is_deleted + */ + private int isDeleted; + + public RolePermission() {} +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/entity/UserRole.java b/src/main/java/net/lensfrex/dscape/dao/entity/UserRole.java new file mode 100644 index 0000000..4768d73 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/entity/UserRole.java @@ -0,0 +1,52 @@ +package net.lensfrex.dscape.dao.entity; + +import lombok.Data; +import java.io.Serializable; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; + +/** + * @description user_role + * @author lensfrex + * @date 2022-08-17 + */ +@Data +public class UserRole implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 角色id + */ + private Integer role; + + /** + * 用户uid + */ + private String uid; + + /** + * create_time + */ + private LocalDateTime createTime; + + /** + * edit_time + */ + private LocalDateTime editTime; + + /** + * is_deleted + */ + private int isDeleted; + + public UserRole() {} +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/mapper/RolePermissionMapper.java b/src/main/java/net/lensfrex/dscape/dao/mapper/RolePermissionMapper.java new file mode 100644 index 0000000..2bf3b05 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/mapper/RolePermissionMapper.java @@ -0,0 +1,15 @@ +package net.lensfrex.dscape.dao.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import net.lensfrex.dscape.dao.entity.RolePermission; +import java.util.List; +/** + * @description role_permissionMapper + * @author lensfrex + * @date 2022-08-17 + */ +@Mapper +public interface RolePermissionMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/mapper/UserRoleMapper.java b/src/main/java/net/lensfrex/dscape/dao/mapper/UserRoleMapper.java new file mode 100644 index 0000000..69dd095 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/mapper/UserRoleMapper.java @@ -0,0 +1,15 @@ +package net.lensfrex.dscape.dao.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import net.lensfrex.dscape.dao.entity.UserRole; +import java.util.List; +/** + * @description user_roleMapper + * @author lensfrex + * @date 2022-08-17 + */ +@Mapper +public interface UserRoleMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/service/RolePermissionService.java b/src/main/java/net/lensfrex/dscape/dao/service/RolePermissionService.java new file mode 100644 index 0000000..cf89b08 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/service/RolePermissionService.java @@ -0,0 +1,22 @@ +package net.lensfrex.dscape.dao.service; +import net.lensfrex.dscape.dao.entity.RolePermission; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * @description role_permission服务层 + * @author lensfrex + * @date 2022-08-17 + */ +@Service +public interface RolePermissionService extends IService { + @Select("select permission from role_permission where role = #{role} and is_deleted = 0") + List getPermissions(String role); + + @Select("select permission from role_permission where role = #{role} and is_deleted = 0") + List getPermissions(List roles); +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/service/UserRoleService.java b/src/main/java/net/lensfrex/dscape/dao/service/UserRoleService.java new file mode 100644 index 0000000..349859a --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/service/UserRoleService.java @@ -0,0 +1,19 @@ +package net.lensfrex.dscape.dao.service; +import net.lensfrex.dscape.dao.entity.UserRole; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * @description user_role服务层 + * @author lensfrex + * @date 2022-08-17 + */ +@Service +public interface UserRoleService extends IService { + + @Select("select role from user_role where uid = '#{uid}' and is_deleted != 1") + List getRoles(String uid); +} \ No newline at end of file diff --git a/src/main/java/net/lensfrex/dscape/dao/service/impl/RolePermissionServiceImpl.java b/src/main/java/net/lensfrex/dscape/dao/service/impl/RolePermissionServiceImpl.java new file mode 100644 index 0000000..b94e376 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/service/impl/RolePermissionServiceImpl.java @@ -0,0 +1,51 @@ +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape.dao.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import net.lensfrex.dscape.dao.entity.RolePermission; +import net.lensfrex.dscape.dao.mapper.RolePermissionMapper; +import net.lensfrex.dscape.dao.service.RolePermissionService; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class RolePermissionServiceImpl extends ServiceImpl implements RolePermissionService { + @Override + public List getPermissions(String role) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .select(RolePermission::getPermission) + .eq(RolePermission::getRole, role) + .eq(RolePermission::getIsDeleted, 0); + + return this.getPermissions(wrapper); + } + + @Override + public List getPermissions(List roles) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .select(RolePermission::getPermission) + .in(RolePermission::getRole, roles) + .eq(RolePermission::getIsDeleted, 0); + + return this.getPermissions(wrapper); + } + + private List getPermissions(QueryWrapper wrapper) { + + List rolePermissionList = this.list(wrapper); + + List permissions = new ArrayList<>(); + rolePermissionList.forEach(rolePermission -> permissions.add(rolePermission.getPermission().toString())); + + return permissions; + } +} diff --git a/src/main/java/net/lensfrex/dscape/dao/service/impl/UserRoleServiceImpl.java b/src/main/java/net/lensfrex/dscape/dao/service/impl/UserRoleServiceImpl.java new file mode 100644 index 0000000..8a4c1ca --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dao/service/impl/UserRoleServiceImpl.java @@ -0,0 +1,37 @@ +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape.dao.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import net.lensfrex.dscape.dao.entity.UserRole; +import net.lensfrex.dscape.dao.mapper.UserRoleMapper; +import net.lensfrex.dscape.dao.service.UserRoleService; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class UserRoleServiceImpl extends ServiceImpl implements UserRoleService { + + @Override + public List getRoles(String uid) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .select(UserRole::getRole) + .eq(UserRole::getUid, uid) + .eq(UserRole::getIsDeleted, 0); + + List userRoleList = this.list(wrapper); + List roles = new ArrayList<>(); + + userRoleList.forEach(userRole -> roles.add(userRole.getRole().toString())); + + return roles; + } +} diff --git a/src/main/java/net/lensfrex/dscape/dto/request/UserLoginRequestBody.java b/src/main/java/net/lensfrex/dscape/dto/request/UserLoginRequestBody.java new file mode 100644 index 0000000..c1a7785 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/dto/request/UserLoginRequestBody.java @@ -0,0 +1,15 @@ + +package net.lensfrex.dscape.dto.request; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class UserLoginRequestBody { + private String password; + + @JsonProperty("user_name") + private String userName; +} diff --git a/src/main/java/net/lensfrex/dscape/web/controllers/Error.java b/src/main/java/net/lensfrex/dscape/web/controllers/Error.java index 43cd5d5..443a727 100644 --- a/src/main/java/net/lensfrex/dscape/web/controllers/Error.java +++ b/src/main/java/net/lensfrex/dscape/web/controllers/Error.java @@ -10,9 +10,9 @@ import org.springframework.web.bind.annotation.ExceptionHandler; @ControllerAdvice public class Error extends AbstractMethodError { - @ExceptionHandler({ RuntimeException.class }) - public Response error() { - return Response.error(50000, "服务器内部错误...."); - } +// @ExceptionHandler({ RuntimeException.class }) +// public Response error() { +// return Response.error(50000, "服务器内部错误...."); +// } } diff --git a/src/main/java/net/lensfrex/dscape/web/controllers/compute/Compute.java b/src/main/java/net/lensfrex/dscape/web/controllers/compute/ComputeController.java similarity index 93% rename from src/main/java/net/lensfrex/dscape/web/controllers/compute/Compute.java rename to src/main/java/net/lensfrex/dscape/web/controllers/compute/ComputeController.java index 9538e7e..d67cde3 100644 --- a/src/main/java/net/lensfrex/dscape/web/controllers/compute/Compute.java +++ b/src/main/java/net/lensfrex/dscape/web/controllers/compute/ComputeController.java @@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/compute") -public class Compute { +public class ComputeController { @GetMapping(value = "/status/{tid}", produces = "application/json") public Response status(@PathVariable String tid, @RequestHeader String token) { diff --git a/src/main/java/net/lensfrex/dscape/web/controllers/history/History.java b/src/main/java/net/lensfrex/dscape/web/controllers/history/HistoryController.java similarity index 94% rename from src/main/java/net/lensfrex/dscape/web/controllers/history/History.java rename to src/main/java/net/lensfrex/dscape/web/controllers/history/HistoryController.java index 30871d0..ecf1824 100644 --- a/src/main/java/net/lensfrex/dscape/web/controllers/history/History.java +++ b/src/main/java/net/lensfrex/dscape/web/controllers/history/HistoryController.java @@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/history") -public class History { +public class HistoryController { @GetMapping(value = "/list/{uid}", produces = "application/json") public Response list(@PathVariable String uid, diff --git a/src/main/java/net/lensfrex/dscape/web/controllers/user/User.java b/src/main/java/net/lensfrex/dscape/web/controllers/user/UserController.java similarity index 57% rename from src/main/java/net/lensfrex/dscape/web/controllers/user/User.java rename to src/main/java/net/lensfrex/dscape/web/controllers/user/UserController.java index 9a133fe..d36cce4 100644 --- a/src/main/java/net/lensfrex/dscape/web/controllers/user/User.java +++ b/src/main/java/net/lensfrex/dscape/web/controllers/user/UserController.java @@ -4,20 +4,35 @@ package net.lensfrex.dscape.web.controllers.user; +import cn.dev33.satoken.stp.SaTokenInfo; +import cn.dev33.satoken.stp.StpUtil; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import net.lensfrex.dscape.dto.request.UserLoginRequestBody; import net.lensfrex.dscape.dto.response.general.Response; import net.lensfrex.dscape.dto.response.general.ResponseCode; +import net.lensfrex.dscape.web.service.user.UserService; import org.springframework.web.bind.annotation.*; @JsonSerialize(using = ToStringSerializer.class) @RestController @RequestMapping("/user") -public class User { +public class UserController { + + private final UserService userService; + + public UserController(UserService userService) { + this.userService = userService; + } @PostMapping(value = "/login" , produces = "application/json") - public Response login(@RequestBody String body) { - return Response.error(ResponseCode.API_NOT_IMPLEMENT); + public Response login(@RequestBody UserLoginRequestBody requestBody) { + return Response.success(userService.login(requestBody)); + } + + @GetMapping(value = "/checkLogin" , produces = "application/json") + public Response testLogin(@RequestBody UserLoginRequestBody requestBody) { + return Response.success(StpUtil.isLogin()); } @PostMapping(value = "/register", produces = "application/json") diff --git a/src/main/java/net/lensfrex/dscape/web/controllers/user/admin/Admin.java b/src/main/java/net/lensfrex/dscape/web/controllers/user/admin/AdminController.java similarity index 93% rename from src/main/java/net/lensfrex/dscape/web/controllers/user/admin/Admin.java rename to src/main/java/net/lensfrex/dscape/web/controllers/user/admin/AdminController.java index 619268f..9399c26 100644 --- a/src/main/java/net/lensfrex/dscape/web/controllers/user/admin/Admin.java +++ b/src/main/java/net/lensfrex/dscape/web/controllers/user/admin/AdminController.java @@ -4,14 +4,13 @@ package net.lensfrex.dscape.web.controllers.user.admin; -import cn.dev33.satoken.stp.StpUtil; import net.lensfrex.dscape.dto.response.general.Response; import net.lensfrex.dscape.dto.response.general.ResponseCode; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/user/admin") -public class Admin { +public class AdminController { @PostMapping(value = "/add", produces = "application/json") public Response addUser(@RequestBody String body, @RequestHeader String token) { @@ -24,7 +23,6 @@ public class Admin { return Response.error(ResponseCode.API_NOT_IMPLEMENT); } - @GetMapping(value = "/application/list", produces = "application/json") public Response listApplication( @RequestParam String offset, @RequestParam String limit, @RequestParam String page, diff --git a/src/main/java/net/lensfrex/dscape/web/service/user/UserService.java b/src/main/java/net/lensfrex/dscape/web/service/user/UserService.java new file mode 100644 index 0000000..900b8e9 --- /dev/null +++ b/src/main/java/net/lensfrex/dscape/web/service/user/UserService.java @@ -0,0 +1,18 @@ +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape.web.service.user; + +import cn.dev33.satoken.stp.SaTokenInfo; +import cn.dev33.satoken.stp.StpUtil; +import net.lensfrex.dscape.dto.request.UserLoginRequestBody; +import org.springframework.stereotype.Service; + +@Service +public class UserService { + public SaTokenInfo login(UserLoginRequestBody requestBody) { + StpUtil.login(requestBody.getUserName()); + return StpUtil.getTokenInfo(); + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 8202132..22ccc87 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -14,7 +14,18 @@ spring: url: jdbc:mariadb://localhost:3306/dscape?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: "dscape_user" password: asdfasdf - + redis: + client-name: dscape + host: 127.0.0.1 + port: 49153 + username: default + password: bd2fbffa5 + lettuce: + pool: + max-active: 8 + max-wait: -1 + max-idle: 8 + min-idle: 0 mybatis-plus: configuration: @@ -22,7 +33,7 @@ mybatis-plus: default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler sa-token: - token-name: dscape_token + token-name: dscape-token timeout: 259200 activity-timeout: -1 is-concurrent: true diff --git a/src/test/java/net/lensfrex/dscape/test/TestMain.java b/src/test/java/net/lensfrex/dscape/test/TestMain.java new file mode 100644 index 0000000..fae5472 --- /dev/null +++ b/src/test/java/net/lensfrex/dscape/test/TestMain.java @@ -0,0 +1,20 @@ +/* + * Class created by lensfrex. + */ + +package net.lensfrex.dscape.test; + +import cn.dev33.satoken.stp.StpUtil; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@Slf4j +@SpringBootTest +public class TestMain { + + @Test + public void testPermission() { + StpUtil.getPermissionList("114514asdf").forEach(System.out::println); + } +}