first commit

This commit is contained in:
2023-07-10 21:13:35 +08:00
parent 373754c2bb
commit 2f9a4cbc8d
12 changed files with 49 additions and 73 deletions

View File

@ -2,6 +2,8 @@ package com.qiaoba.api.system.service;
import com.qiaoba.api.system.entity.SysMenu; import com.qiaoba.api.system.entity.SysMenu;
import com.qiaoba.api.system.entity.param.SysMenuParam; import com.qiaoba.api.system.entity.param.SysMenuParam;
import com.qiaoba.api.system.entity.vo.RouterVo;
import com.qiaoba.api.system.entity.vo.SysMenuVo;
import java.util.List; import java.util.List;
@ -54,4 +56,20 @@ public interface SysMenuApiService {
*/ */
int deleteById(String menuId); int deleteById(String menuId);
/**
* 通过 userId 查询目录和菜单
*
* @param userId userId
* @return list
*/
List<SysMenuVo> selectByUserId(String userId);
/**
* 菜单转路由
*
* @param menus 菜单列表
* @return 路由列表
*/
List<RouterVo> menusToRouters(List<SysMenuVo> menus);
} }

View File

@ -16,7 +16,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
*/ */
@EnableConfigurationProperties @EnableConfigurationProperties
@EnableScheduling @EnableScheduling
@ComponentScan({"com.qiaoba.module.**", "com.qiaoba.application"}) @ComponentScan({"com.qiaoba.module.**", "com.qiaoba.auth.**", "com.qiaoba.application"})
@MapperScan("com.qiaoba.module.**.mapper") @MapperScan("com.qiaoba.module.**.mapper")
@SpringBootApplication @SpringBootApplication
public class QiaoBaApplication { public class QiaoBaApplication {

View File

@ -18,6 +18,14 @@
<groupId>com.qiaoba</groupId> <groupId>com.qiaoba</groupId>
<artifactId>qiaoba-api-auth</artifactId> <artifactId>qiaoba-api-auth</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.qiaoba</groupId>
<artifactId>qiaoba-api-monitor</artifactId>
</dependency>
<dependency>
<groupId>com.qiaoba</groupId>
<artifactId>qiaoba-api-system</artifactId>
</dependency>
<!-- common-base --> <!-- common-base -->
<dependency> <dependency>
<groupId>com.qiaoba</groupId> <groupId>com.qiaoba</groupId>

View File

@ -1,24 +0,0 @@
package com.qiaoba.auth.context;
import cn.hutool.core.convert.Convert;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
/**
* 权限信息
*
* @author ruoyi
*/
public class PermissionContextHolder {
private static final String PERMISSION_CONTEXT_ATTRIBUTES = "PERMISSION_CONTEXT";
public static void setContext(String permission) {
RequestContextHolder.currentRequestAttributes().setAttribute(PERMISSION_CONTEXT_ATTRIBUTES, permission,
RequestAttributes.SCOPE_REQUEST);
}
public static String getContext() {
return Convert.toStr(RequestContextHolder.currentRequestAttributes().getAttribute(PERMISSION_CONTEXT_ATTRIBUTES,
RequestAttributes.SCOPE_REQUEST));
}
}

View File

@ -1,11 +1,11 @@
package com.qiaoba.module.system.controller; package com.qiaoba.auth.controller;
import com.qiaoba.api.auth.utils.SecurityUtil;
import com.qiaoba.api.system.entity.dto.LoginDto; import com.qiaoba.api.system.entity.dto.LoginDto;
import com.qiaoba.api.system.entity.vo.SysMenuVo; import com.qiaoba.api.system.entity.vo.SysMenuVo;
import com.qiaoba.api.auth.utils.SecurityUtil; import com.qiaoba.api.system.service.SysMenuApiService;
import com.qiaoba.auth.service.SysLoginService;
import com.qiaoba.common.base.result.AjaxResult; import com.qiaoba.common.base.result.AjaxResult;
import com.qiaoba.module.system.service.SysLoginService;
import com.qiaoba.module.system.service.SysMenuService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -26,7 +26,7 @@ import java.util.Set;
@RequiredArgsConstructor @RequiredArgsConstructor
public class SysLoginController { public class SysLoginController {
private final SysMenuService sysMenuService; private final SysMenuApiService sysMenuApiService;
private final SysLoginService sysLoginService; private final SysLoginService sysLoginService;
@GetMapping("/captchaImage") @GetMapping("/captchaImage")
@ -57,8 +57,8 @@ public class SysLoginController {
@GetMapping("/getRouters") @GetMapping("/getRouters")
public AjaxResult getRouters() { public AjaxResult getRouters() {
List<SysMenuVo> sysMenuVos = sysMenuService.selectByUserId(SecurityUtil.getLoginUserId()); List<SysMenuVo> sysMenuVos = sysMenuApiService.selectByUserId(SecurityUtil.getLoginUserId());
return AjaxResult.success(sysMenuService.menusToRouters(sysMenuVos)); return AjaxResult.success(sysMenuApiService.menusToRouters(sysMenuVos));
} }
} }

View File

@ -12,6 +12,7 @@ import com.qiaoba.common.web.utils.ResponseUtil;
import com.qiaoba.common.web.utils.UriUtil; import com.qiaoba.common.web.utils.UriUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
@ -34,6 +35,7 @@ import java.util.Objects;
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
@Order(FilterOrder.ONLINE_USER_FILTER_ORDER) @Order(FilterOrder.ONLINE_USER_FILTER_ORDER)
@Configuration
public class OnlineUserFilter extends OncePerRequestFilter { public class OnlineUserFilter extends OncePerRequestFilter {
private final AuthConfigProperties authConfigProperties; private final AuthConfigProperties authConfigProperties;

View File

@ -7,6 +7,7 @@ import com.qiaoba.auth.properties.AuthConfigProperties;
import com.qiaoba.common.base.context.BaseContext; import com.qiaoba.common.base.context.BaseContext;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
@ -30,6 +31,7 @@ import java.util.Objects;
*/ */
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
@Configuration
public class SecurityContextHolderFilter extends OncePerRequestFilter { public class SecurityContextHolderFilter extends OncePerRequestFilter {

View File

@ -1,4 +1,4 @@
package com.qiaoba.module.system.service; package com.qiaoba.auth.service;
import com.qiaoba.api.system.entity.dto.LoginDto; import com.qiaoba.api.system.entity.dto.LoginDto;

View File

@ -1,4 +1,4 @@
package com.qiaoba.module.system.service.impl; package com.qiaoba.auth.service.impl;
import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.LineCaptcha; import cn.hutool.captcha.LineCaptcha;
@ -8,25 +8,25 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgent;
import cn.hutool.http.useragent.UserAgentUtil; import cn.hutool.http.useragent.UserAgentUtil;
import com.qiaoba.api.auth.constants.SecurityConstant;
import com.qiaoba.api.auth.entity.OnlineUser;
import com.qiaoba.api.auth.service.AuthConfigApiService; import com.qiaoba.api.auth.service.AuthConfigApiService;
import com.qiaoba.api.auth.service.OnlineUserService;
import com.qiaoba.api.auth.service.SysUserDetailsApiService; import com.qiaoba.api.auth.service.SysUserDetailsApiService;
import com.qiaoba.api.auth.utils.SecurityUtil;
import com.qiaoba.api.auth.utils.TokenUtil;
import com.qiaoba.api.monitor.entity.SysLoginLog; import com.qiaoba.api.monitor.entity.SysLoginLog;
import com.qiaoba.api.monitor.service.SysLoginLogApiService; import com.qiaoba.api.monitor.service.SysLoginLogApiService;
import com.qiaoba.api.system.entity.SysUser; import com.qiaoba.api.system.entity.SysUser;
import com.qiaoba.api.system.entity.dto.LoginDto; import com.qiaoba.api.system.entity.dto.LoginDto;
import com.qiaoba.api.auth.constants.SecurityConstant; import com.qiaoba.api.system.service.SysUserApiService;
import com.qiaoba.api.auth.entity.OnlineUser; import com.qiaoba.auth.service.SysLoginService;
import com.qiaoba.api.auth.service.OnlineUserService;
import com.qiaoba.api.auth.utils.SecurityUtil;
import com.qiaoba.api.auth.utils.TokenUtil;
import com.qiaoba.common.base.constants.BaseConstant; import com.qiaoba.common.base.constants.BaseConstant;
import com.qiaoba.common.base.constants.ConfigConstant; import com.qiaoba.common.base.constants.ConfigConstant;
import com.qiaoba.common.base.enums.BaseEnum; import com.qiaoba.common.base.enums.BaseEnum;
import com.qiaoba.common.base.exceptions.ServiceException; import com.qiaoba.common.base.exceptions.ServiceException;
import com.qiaoba.common.redis.service.RedisService; import com.qiaoba.common.redis.service.RedisService;
import com.qiaoba.common.web.utils.IpUtil; import com.qiaoba.common.web.utils.IpUtil;
import com.qiaoba.module.system.service.SysLoginService;
import com.qiaoba.module.system.service.SysUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -50,7 +50,7 @@ public class SysLoginServiceImpl implements SysLoginService {
private final RedisService redisService; private final RedisService redisService;
private final HttpServletRequest request; private final HttpServletRequest request;
private final SysUserDetailsApiService userDetailsService; private final SysUserDetailsApiService userDetailsService;
private final SysUserService sysUserService; private final SysUserApiService sysUserApiService;
private final OnlineUserService onlineUserService; private final OnlineUserService onlineUserService;
private final AuthConfigApiService authConfigApiService; private final AuthConfigApiService authConfigApiService;
private final SysLoginLogApiService sysLoginLogApiService; private final SysLoginLogApiService sysLoginLogApiService;
@ -82,7 +82,7 @@ public class SysLoginServiceImpl implements SysLoginService {
// 校验验证码 // 校验验证码
authConfigApiService.validateCaptcha(dto.getCode(), dto.getUuid()); authConfigApiService.validateCaptcha(dto.getCode(), dto.getUuid());
// username查询用户信息 // username查询用户信息
SysUser sysUser = sysUserService.selectByUsername(dto.getUsername()); SysUser sysUser = sysUserApiService.selectByUsername(dto.getUsername());
// 检查账号信息 // 检查账号信息
validateUser(dto.getUsername(), sysUser); validateUser(dto.getUsername(), sysUser);
// 检验密码 // 检验密码

View File

@ -1,11 +0,0 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.qiaoba.auth.properties.AuthConfigProperties,\
com.qiaoba.auth.handler.AccessDeniedHandler,\
com.qiaoba.auth.handler.LogoutHandler,\
com.qiaoba.auth.filters.OnlineUserFilter,\
com.qiaoba.auth.filters.SecurityContextHolderFilter,\
com.qiaoba.auth.advice.SecurityExceptionAdvice,\
com.qiaoba.auth.aspectj.DataScopeAspect,\
com.qiaoba.auth.service.impl.OnlineUserServiceImpl,\
com.qiaoba.auth.service.impl.AuthConfigServiceImpl,\
com.qiaoba.auth.config.SpringSecurityConfig

View File

@ -26,10 +26,6 @@
<groupId>com.qiaoba</groupId> <groupId>com.qiaoba</groupId>
<artifactId>qiaoba-api-file</artifactId> <artifactId>qiaoba-api-file</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.qiaoba</groupId>
<artifactId>qiaoba-api-monitor</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.qiaoba</groupId> <groupId>com.qiaoba</groupId>
<artifactId>qiaoba-api-tenant</artifactId> <artifactId>qiaoba-api-tenant</artifactId>

View File

@ -35,14 +35,6 @@ public interface SysMenuService extends SysMenuApiService {
*/ */
List<String> selectMenuIdsByRoleId(String roleId); List<String> selectMenuIdsByRoleId(String roleId);
/**
* 通过 userId 查询目录和菜单
*
* @param userId userId
* @return list
*/
List<SysMenuVo> selectByUserId(String userId);
/** /**
* 查询用户拥有的权限列表 * 查询用户拥有的权限列表
* *
@ -51,11 +43,4 @@ public interface SysMenuService extends SysMenuApiService {
*/ */
Set<String> selectPermsByUserId(String userId); Set<String> selectPermsByUserId(String userId);
/**
* 菜单转路由
*
* @param menus 菜单列表
* @return 路由列表
*/
List<RouterVo> menusToRouters(List<SysMenuVo> menus);
} }