diff --git a/eladmin-common/src/main/java/me/zhengjie/config/SwaggerConfig.java b/eladmin-common/src/main/java/me/zhengjie/config/SwaggerConfig.java index e5e16216..50343bcb 100644 --- a/eladmin-common/src/main/java/me/zhengjie/config/SwaggerConfig.java +++ b/eladmin-common/src/main/java/me/zhengjie/config/SwaggerConfig.java @@ -26,14 +26,12 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.data.domain.Pageable; import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.schema.AlternateTypeRule; import springfox.documentation.schema.AlternateTypeRuleConvention; -import springfox.documentation.schema.ModelRef; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.Parameter; +import springfox.documentation.service.*; import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.ArrayList; @@ -53,41 +51,65 @@ public class SwaggerConfig { @Value("${jwt.header}") private String tokenHeader; - @Value("${jwt.token-start-with}") - private String tokenStartWith; - @Value("${swagger.enabled}") private Boolean enabled; @Bean @SuppressWarnings("all") public Docket createRestApi() { - ParameterBuilder ticketPar = new ParameterBuilder(); - List pars = new ArrayList<>(); - ticketPar.name(tokenHeader).description("token") - .modelRef(new ModelRef("string")) - .parameterType("header") - .defaultValue(tokenStartWith + " ") - .required(true) - .build(); - pars.add(ticketPar.build()); return new Docket(DocumentationType.SWAGGER_2) .enable(enabled) + .pathMapping("/") .apiInfo(apiInfo()) .select() .paths(Predicates.not(PathSelectors.regex("/error.*"))) + .paths(PathSelectors.any()) .build() - .globalOperationParameters(pars); + //添加登陆认证 + .securitySchemes(securitySchemes()) + .securityContexts(securityContexts()); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .description("一个简单且易上手的 Spring boot 后台管理框架") .title("EL-ADMIN 接口文档") - .version("2.4") + .version("2.6") .build(); } + private List securitySchemes() { + //设置请求头信息 + List securitySchemes = new ArrayList<>(); + ApiKey apiKey = new ApiKey(tokenHeader, tokenHeader, "header"); + securitySchemes.add(apiKey); + return securitySchemes; + } + + private List securityContexts() { + //设置需要登录认证的路径 + List securityContexts = new ArrayList<>(); + // ^(?!auth).*$ 表示所有包含auth的接口不需要使用securitySchemes即不需要带token + // ^标识开始 ()里是一子表达式 ?!/auth表示匹配不是/auth的位置,匹配上则添加请求头,注意路径已/开头 .表示任意字符 *表示前面的字符匹配多次 $标识结束 + securityContexts.add(getContextByPath()); + return securityContexts; + } + + private SecurityContext getContextByPath() { + return SecurityContext.builder() + .securityReferences(defaultAuth()) + .forPaths(PathSelectors.regex("^(?!/auth).*$")) + .build(); + } + + private List defaultAuth() { + List securityReferences = new ArrayList<>(); + AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); + AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; + authorizationScopes[0] = authorizationScope; + securityReferences.add(new SecurityReference(tokenHeader, authorizationScopes)); + return securityReferences; + } } /** diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/config/ConfigBeanConfiguration.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/config/ConfigBeanConfiguration.java index fde89507..8cbc88dd 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/config/ConfigBeanConfiguration.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/config/ConfigBeanConfiguration.java @@ -30,13 +30,13 @@ import org.springframework.context.annotation.Configuration; public class ConfigBeanConfiguration { @Bean - @ConfigurationProperties(prefix = "login", ignoreUnknownFields = true) + @ConfigurationProperties(prefix = "login") public LoginProperties loginProperties() { return new LoginProperties(); } @Bean - @ConfigurationProperties(prefix = "jwt", ignoreUnknownFields = true) + @ConfigurationProperties(prefix = "jwt") public SecurityProperties securityProperties() { return new SecurityProperties(); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginCode.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginCode.java index 99660787..fefd252b 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginCode.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginCode.java @@ -20,8 +20,8 @@ import lombok.Data; /** * 登录验证码配置信息 * - * @author: liaojinlong - * @date: 2020/6/10 18:53 + * @author liaojinlong + * @date 2020/6/10 18:53 */ @Data public class LoginCode { diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginProperties.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginProperties.java index a609f5c9..ca57213a 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginProperties.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/config/bean/LoginProperties.java @@ -39,6 +39,7 @@ public class LoginProperties { private boolean singleLogin = false; private LoginCode loginCode; + /** * 用户登录信息缓存 */ diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DeptServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DeptServiceImpl.java index 8c7c331a..657a6074 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DeptServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DeptServiceImpl.java @@ -58,7 +58,7 @@ public class DeptServiceImpl implements DeptService { @Override public List queryAll(DeptQueryCriteria criteria, Boolean isQuery) throws Exception { - Sort sort = new Sort(Sort.Direction.ASC, "deptSort"); + Sort sort = Sort.by(Sort.Direction.ASC, "deptSort"); String dataScopeType = SecurityUtils.getDataScopeType(); if (isQuery) { if(dataScopeType.equals(DataScopeEnum.ALL.getValue())){ @@ -278,4 +278,4 @@ public class DeptServiceImpl implements DeptService { redisUtils.delByKeys(CacheKey.DATA_USER, users.stream().map(User::getId).collect(Collectors.toSet())); redisUtils.del(CacheKey.DEPT_ID + id); } -} \ No newline at end of file +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java index c7e45499..0e54fc92 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java @@ -61,7 +61,7 @@ public class MenuServiceImpl implements MenuService { @Override public List queryAll(MenuQueryCriteria criteria, Boolean isQuery) throws Exception { - Sort sort = new Sort(Sort.Direction.ASC, "menuSort"); + Sort sort = Sort.by(Sort.Direction.ASC, "menuSort"); if(isQuery){ criteria.setPidIsNull(true); List fields = QueryHelp.getAllFields(criteria.getClass(), new ArrayList<>()); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java index f8690229..e8b41438 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java @@ -66,7 +66,7 @@ public class RoleServiceImpl implements RoleService { @Override public List queryAll() { - Sort sort = new Sort(Sort.Direction.ASC, "level"); + Sort sort = Sort.by(Sort.Direction.ASC, "level"); return roleMapper.toDto(roleRepository.findAll(sort)); } diff --git a/eladmin-system/src/main/resources/config/application-dev.yml b/eladmin-system/src/main/resources/config/application-dev.yml index c8bf11f1..d3fbf517 100644 --- a/eladmin-system/src/main/resources/config/application-dev.yml +++ b/eladmin-system/src/main/resources/config/application-dev.yml @@ -66,7 +66,7 @@ login: # 验证码高度 width: 111 # 验证码宽度 - heigth: 36 + height: 36 # 内容长度 length: 2 # 字体名称,为空则使用默认字体 diff --git a/eladmin-system/src/main/resources/config/application-prod.yml b/eladmin-system/src/main/resources/config/application-prod.yml index 4b513e22..52e52ddf 100644 --- a/eladmin-system/src/main/resources/config/application-prod.yml +++ b/eladmin-system/src/main/resources/config/application-prod.yml @@ -65,7 +65,7 @@ login: # 验证码高度 width: 111 # 验证码宽度 - heigth: 36 + height: 36 # 内容长度 length: 2 # 字体名称,为空则使用默认字体,如遇到线上乱码,设置其他字体即可 diff --git a/eladmin-tools/pom.xml b/eladmin-tools/pom.xml index 61b1f6d0..4bbf9f4c 100644 --- a/eladmin-tools/pom.xml +++ b/eladmin-tools/pom.xml @@ -13,7 +13,7 @@ 工具模块 - 1.5.0-b01 + 1.4.7 [7.2.0, 7.2.99] 4.9.153.ALL diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/impl/EmailServiceImpl.java b/eladmin-tools/src/main/java/me/zhengjie/service/impl/EmailServiceImpl.java index a71628e3..c98c76ec 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/impl/EmailServiceImpl.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/impl/EmailServiceImpl.java @@ -69,7 +69,9 @@ public class EmailServiceImpl implements EmailService { } // 封装 MailAccount account = new MailAccount(); - account.setUser(emailConfig.getUser()); + // 设置用户 + String user = emailConfig.getFromUser().split("@")[0]; + account.setUser(user); account.setHost(emailConfig.getHost()); account.setPort(Integer.parseInt(emailConfig.getPort())); account.setAuth(true); diff --git a/pom.xml b/pom.xml index 670b3027..ebf7b809 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ org.springframework.boot spring-boot-starter-parent - 2.1.0.RELEASE + 2.2.10.RELEASE diff --git a/sql/eladmin.sql b/sql/eladmin.sql index 1cc6ff7e..00234d29 100644 --- a/sql/eladmin.sql +++ b/sql/eladmin.sql @@ -660,7 +660,7 @@ CREATE TABLE `sys_user` ( `is_admin` bit(1) DEFAULT b'0' COMMENT '是否为admin账号', `enabled` bigint(20) DEFAULT NULL COMMENT '状态:1启用、0禁用', `create_by` varchar(255) DEFAULT NULL COMMENT '创建者', - `update_by` varchar(255) DEFAULT NULL COMMENT '更新着', + `update_by` varchar(255) DEFAULT NULL COMMENT '更新者', `pwd_reset_time` datetime DEFAULT NULL COMMENT '修改密码的时间', `create_time` datetime DEFAULT NULL COMMENT '创建日期', `update_time` datetime DEFAULT NULL COMMENT '更新时间', @@ -822,4 +822,4 @@ CREATE TABLE `tool_qiniu_content` ( BEGIN; COMMIT; -SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file +SET FOREIGN_KEY_CHECKS = 1;