refactor: 优化 SaToken 及图形验证码配置
This commit is contained in:
parent
1c1ec69030
commit
70973db71f
@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package top.charles7c.continew.admin.auth.config.satoken;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpInterface;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sa-Token 配置
|
||||||
|
*
|
||||||
|
* @author Charles7c
|
||||||
|
* @since 2022/12/19 22:13
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class SaTokenConfiguration {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sa-Token 权限认证配置
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public StpInterface stpInterface() {
|
||||||
|
return new SaTokenPermissionImpl();
|
||||||
|
}
|
||||||
|
}
|
@ -16,35 +16,27 @@
|
|||||||
|
|
||||||
package top.charles7c.continew.admin.auth.config.satoken;
|
package top.charles7c.continew.admin.auth.config.satoken;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.stp.StpInterface;
|
import cn.dev33.satoken.stp.StpInterface;
|
||||||
|
|
||||||
import top.charles7c.continew.admin.common.model.dto.LoginUser;
|
import top.charles7c.continew.admin.common.model.dto.LoginUser;
|
||||||
import top.charles7c.continew.admin.common.util.helper.LoginHelper;
|
import top.charles7c.continew.admin.common.util.helper.LoginHelper;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sa-Token 权限认证适配
|
* Sa-Token 权限认证实现
|
||||||
*
|
*
|
||||||
* @author Lion Li(<a href="https://gitee.com/dromara/RuoYi-Vue-Plus">RuoYi-Vue-Plus</a>)
|
|
||||||
* @author Charles7c
|
* @author Charles7c
|
||||||
* @since 2023/3/1 22:28
|
* @since 2023/3/1 22:28
|
||||||
*/
|
*/
|
||||||
public class SaTokenPermissionImpl implements StpInterface {
|
public class SaTokenPermissionImpl implements StpInterface {
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取菜单权限列表
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getPermissionList(Object loginId, String loginType) {
|
public List<String> getPermissionList(Object loginId, String loginType) {
|
||||||
LoginUser loginUser = LoginHelper.getLoginUser();
|
LoginUser loginUser = LoginHelper.getLoginUser();
|
||||||
return new ArrayList<>(loginUser.getPermissions());
|
return new ArrayList<>(loginUser.getPermissions());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取角色权限列表
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getRoleList(Object loginId, String loginType) {
|
public List<String> getRoleList(Object loginId, String loginType) {
|
||||||
LoginUser loginUser = LoginHelper.getLoginUser();
|
LoginUser loginUser = LoginHelper.getLoginUser();
|
||||||
|
@ -47,14 +47,13 @@ import top.charles7c.continew.admin.common.constant.CacheConstants;
|
|||||||
import top.charles7c.continew.admin.common.constant.RegexConstants;
|
import top.charles7c.continew.admin.common.constant.RegexConstants;
|
||||||
import top.charles7c.continew.admin.common.model.resp.CaptchaResp;
|
import top.charles7c.continew.admin.common.model.resp.CaptchaResp;
|
||||||
import top.charles7c.continew.starter.cache.redisson.util.RedisUtils;
|
import top.charles7c.continew.starter.cache.redisson.util.RedisUtils;
|
||||||
import top.charles7c.continew.starter.captcha.graphic.autoconfigure.GraphicCaptchaProperties;
|
|
||||||
import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties;
|
import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties;
|
||||||
import top.charles7c.continew.starter.core.util.TemplateUtils;
|
import top.charles7c.continew.starter.core.util.TemplateUtils;
|
||||||
import top.charles7c.continew.starter.core.util.validate.CheckUtils;
|
import top.charles7c.continew.starter.core.util.validate.CheckUtils;
|
||||||
import top.charles7c.continew.starter.core.util.validate.ValidationUtils;
|
import top.charles7c.continew.starter.core.util.validate.ValidationUtils;
|
||||||
import top.charles7c.continew.starter.web.model.R;
|
|
||||||
import top.charles7c.continew.starter.log.common.annotation.Log;
|
import top.charles7c.continew.starter.log.common.annotation.Log;
|
||||||
import top.charles7c.continew.starter.messaging.mail.util.MailUtils;
|
import top.charles7c.continew.starter.messaging.mail.util.MailUtils;
|
||||||
|
import top.charles7c.continew.starter.web.model.R;
|
||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
@ -75,9 +74,9 @@ import java.util.Map;
|
|||||||
public class CaptchaController {
|
public class CaptchaController {
|
||||||
|
|
||||||
private final CaptchaService captchaService;
|
private final CaptchaService captchaService;
|
||||||
|
private final Captcha captcha;
|
||||||
private final ProjectProperties projectProperties;
|
private final ProjectProperties projectProperties;
|
||||||
private final CaptchaProperties captchaProperties;
|
private final CaptchaProperties captchaProperties;
|
||||||
private final GraphicCaptchaProperties graphicCaptchaProperties;
|
|
||||||
|
|
||||||
@Log(ignore = true)
|
@Log(ignore = true)
|
||||||
@Operation(summary = "获取行为验证码", description = "获取行为验证码(Base64编码)")
|
@Operation(summary = "获取行为验证码", description = "获取行为验证码(Base64编码)")
|
||||||
@ -98,7 +97,6 @@ public class CaptchaController {
|
|||||||
@Operation(summary = "获取图片验证码", description = "获取图片验证码(Base64编码,带图片格式:data:image/gif;base64)")
|
@Operation(summary = "获取图片验证码", description = "获取图片验证码(Base64编码,带图片格式:data:image/gif;base64)")
|
||||||
@GetMapping("/img")
|
@GetMapping("/img")
|
||||||
public R<CaptchaResp> getImageCaptcha() {
|
public R<CaptchaResp> getImageCaptcha() {
|
||||||
Captcha captcha = graphicCaptchaProperties.getCaptcha();
|
|
||||||
String uuid = IdUtil.fastUUID();
|
String uuid = IdUtil.fastUUID();
|
||||||
String captchaKey = CacheConstants.CAPTCHA_KEY_PREFIX + uuid;
|
String captchaKey = CacheConstants.CAPTCHA_KEY_PREFIX + uuid;
|
||||||
RedisUtils.set(captchaKey, captcha.text(), Duration.ofMinutes(captchaProperties.getExpirationInMinutes()));
|
RedisUtils.set(captchaKey, captcha.text(), Duration.ofMinutes(captchaProperties.getExpirationInMinutes()));
|
||||||
|
@ -123,8 +123,6 @@ sa-token:
|
|||||||
## 扩展配置
|
## 扩展配置
|
||||||
extension:
|
extension:
|
||||||
enabled: true
|
enabled: true
|
||||||
# 权限认证实现
|
|
||||||
permission-impl: top.charles7c.continew.admin.auth.config.satoken.SaTokenPermissionImpl
|
|
||||||
# 持久层配置
|
# 持久层配置
|
||||||
dao.type: REDIS
|
dao.type: REDIS
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user