first commit
This commit is contained in:
@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
@ -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>
|
||||||
|
@ -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));
|
|
||||||
}
|
|
||||||
}
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -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;
|
||||||
|
@ -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 {
|
||||||
|
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
@ -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);
|
||||||
// 检验密码
|
// 检验密码
|
@ -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
|
|
@ -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>
|
||||||
|
@ -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);
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user