mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 22:57:17 +08:00 
			
		
		
		
	refactor: 优化 SaToken 及图形验证码配置
This commit is contained in:
		| @@ -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; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| import cn.dev33.satoken.stp.StpInterface; | ||||
|  | ||||
| import top.charles7c.continew.admin.common.model.dto.LoginUser; | ||||
| 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 | ||||
|  * @since 2023/3/1 22:28 | ||||
|  */ | ||||
| public class SaTokenPermissionImpl implements StpInterface { | ||||
|  | ||||
|     /** | ||||
|      * 获取菜单权限列表 | ||||
|      */ | ||||
|     @Override | ||||
|     public List<String> getPermissionList(Object loginId, String loginType) { | ||||
|         LoginUser loginUser = LoginHelper.getLoginUser(); | ||||
|         return new ArrayList<>(loginUser.getPermissions()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 获取角色权限列表 | ||||
|      */ | ||||
|     @Override | ||||
|     public List<String> getRoleList(Object loginId, String loginType) { | ||||
|         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.model.resp.CaptchaResp; | ||||
| 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.util.TemplateUtils; | ||||
| import top.charles7c.continew.starter.core.util.validate.CheckUtils; | ||||
| 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.messaging.mail.util.MailUtils; | ||||
| import top.charles7c.continew.starter.web.model.R; | ||||
|  | ||||
| import java.time.Duration; | ||||
| import java.util.LinkedHashMap; | ||||
| @@ -75,9 +74,9 @@ import java.util.Map; | ||||
| public class CaptchaController { | ||||
|  | ||||
|     private final CaptchaService captchaService; | ||||
|     private final Captcha captcha; | ||||
|     private final ProjectProperties projectProperties; | ||||
|     private final CaptchaProperties captchaProperties; | ||||
|     private final GraphicCaptchaProperties graphicCaptchaProperties; | ||||
|  | ||||
|     @Log(ignore = true) | ||||
|     @Operation(summary = "获取行为验证码", description = "获取行为验证码(Base64编码)") | ||||
| @@ -98,7 +97,6 @@ public class CaptchaController { | ||||
|     @Operation(summary = "获取图片验证码", description = "获取图片验证码(Base64编码,带图片格式:data:image/gif;base64)") | ||||
|     @GetMapping("/img") | ||||
|     public R<CaptchaResp> getImageCaptcha() { | ||||
|         Captcha captcha = graphicCaptchaProperties.getCaptcha(); | ||||
|         String uuid = IdUtil.fastUUID(); | ||||
|         String captchaKey = CacheConstants.CAPTCHA_KEY_PREFIX + uuid; | ||||
|         RedisUtils.set(captchaKey, captcha.text(), Duration.ofMinutes(captchaProperties.getExpirationInMinutes())); | ||||
|   | ||||
| @@ -123,8 +123,6 @@ sa-token: | ||||
|   ## 扩展配置 | ||||
|   extension: | ||||
|     enabled: true | ||||
|     # 权限认证实现 | ||||
|     permission-impl: top.charles7c.continew.admin.auth.config.satoken.SaTokenPermissionImpl | ||||
|     # 持久层配置 | ||||
|     dao.type: REDIS | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user