From a42e1ca7322a8c674ed48e2e4698173a1c71982f Mon Sep 17 00:00:00 2001 From: zhengjie Date: Sat, 11 May 2019 14:11:35 +0800 Subject: [PATCH] =?UTF-8?q?1.8=20=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eladmin-common/pom.xml | 2 +- .../me/zhengjie/swagger2/SwaggerConfig.java | 4 +++ .../java/me/zhengjie/utils/EncryptUtils.java | 4 --- ...yContextHolder.java => SecurityUtils.java} | 26 +++++++++++++-- .../me/zhengjie/utils/EncryptUtilsTest.java | 32 +++++++++++++++++++ eladmin-generator/pom.xml | 4 +-- .../me/zhengjie/service/GenConfigService.java | 3 +- .../main/java/me/zhengjie/utils/GenUtil.java | 4 --- eladmin-logging/pom.xml | 4 +-- .../java/me/zhengjie/rest/LogController.java | 4 +-- .../zhengjie/service/impl/LogServiceImpl.java | 6 ++-- eladmin-system/pom.xml | 6 ++-- .../java/me/zhengjie/config/DataScope.java | 5 ++- .../rest/AuthenticationController.java | 6 ++-- .../modules/system/rest/MenuController.java | 6 ++-- .../modules/system/rest/UserController.java | 11 +++---- .../main/resources/config/application-dev.yml | 4 +++ .../resources/config/application-prod.yml | 6 +++- eladmin-tools/pom.xml | 4 +-- .../me/zhengjie/rest/PictureController.java | 6 ++-- .../me/zhengjie/service/QiNiuService.java | 4 +-- .../service/impl/EmailServiceImpl.java | 14 +++++--- pom.xml | 2 +- 23 files changed, 109 insertions(+), 58 deletions(-) rename eladmin-common/src/main/java/me/zhengjie/utils/{SecurityContextHolder.java => SecurityUtils.java} (52%) create mode 100644 eladmin-common/src/test/java/me/zhengjie/utils/EncryptUtilsTest.java diff --git a/eladmin-common/pom.xml b/eladmin-common/pom.xml index 472ab79e..672f4467 100644 --- a/eladmin-common/pom.xml +++ b/eladmin-common/pom.xml @@ -5,7 +5,7 @@ eladmin me.zhengjie - 1.5 + 1.8 4.0.0 diff --git a/eladmin-common/src/main/java/me/zhengjie/swagger2/SwaggerConfig.java b/eladmin-common/src/main/java/me/zhengjie/swagger2/SwaggerConfig.java index 405f9609..a9bf30de 100644 --- a/eladmin-common/src/main/java/me/zhengjie/swagger2/SwaggerConfig.java +++ b/eladmin-common/src/main/java/me/zhengjie/swagger2/SwaggerConfig.java @@ -29,6 +29,9 @@ public class SwaggerConfig { @Value("${jwt.header}") private String tokenHeader; + @Value("${swagger.enabled}") + private Boolean enabled; + @Bean public Docket createRestApi() { ParameterBuilder ticketPar = new ParameterBuilder(); @@ -41,6 +44,7 @@ public class SwaggerConfig { .build(); pars.add(ticketPar.build()); return new Docket(DocumentationType.SWAGGER_2) + .enable(enabled) .apiInfo(apiInfo()) .select() .paths(Predicates.not(PathSelectors.regex("/error.*"))) diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/EncryptUtils.java b/eladmin-common/src/main/java/me/zhengjie/utils/EncryptUtils.java index 7cf86340..d0a45ea6 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/EncryptUtils.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/EncryptUtils.java @@ -93,8 +93,4 @@ public class EncryptUtils { public static String encryptPassword(String password){ return DigestUtils.md5DigestAsHex(password.getBytes()); } - - public static void main(String[] args) { - System.out.println(encryptPassword("123456")); - } } diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/SecurityContextHolder.java b/eladmin-common/src/main/java/me/zhengjie/utils/SecurityUtils.java similarity index 52% rename from eladmin-common/src/main/java/me/zhengjie/utils/SecurityContextHolder.java rename to eladmin-common/src/main/java/me/zhengjie/utils/SecurityUtils.java index 5529aa4e..07c6e92a 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/SecurityContextHolder.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/SecurityUtils.java @@ -1,16 +1,16 @@ package me.zhengjie.utils; +import cn.hutool.json.JSONObject; import me.zhengjie.exception.BadRequestException; import org.springframework.http.HttpStatus; import org.springframework.security.core.userdetails.UserDetails; /** - * 获取当前登录的用户名 - * + * 获取当前登录的用户 * @author jie * @date 2019-01-17 */ -public class SecurityContextHolder { +public class SecurityUtils { public static UserDetails getUserDetails() { UserDetails userDetails = null; @@ -21,4 +21,24 @@ public class SecurityContextHolder { } return userDetails; } + + /** + * 获取系统用户名称 + * @return 系统用户名称 + */ + public static String getUsername(){ + Object obj = getUserDetails(); + JSONObject json = new JSONObject(obj); + return json.get("username", String.class); + } + + /** + * 获取系统用户id + * @return 系统用户id + */ + public static Long getUserId(){ + Object obj = getUserDetails(); + JSONObject json = new JSONObject(obj); + return json.get("id", Long.class); + } } diff --git a/eladmin-common/src/test/java/me/zhengjie/utils/EncryptUtilsTest.java b/eladmin-common/src/test/java/me/zhengjie/utils/EncryptUtilsTest.java new file mode 100644 index 00000000..f909d9db --- /dev/null +++ b/eladmin-common/src/test/java/me/zhengjie/utils/EncryptUtilsTest.java @@ -0,0 +1,32 @@ +package me.zhengjie.utils; + +import org.junit.Test; +import static org.junit.Assert.*; +import static me.zhengjie.utils.EncryptUtils.*; + +public class EncryptUtilsTest { + + /** + * 对称加密 + */ + @Test + public void testDesEncrypt() { + try { + assertEquals("7772841DC6099402", desEncrypt("123456")); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 对称解密 + */ + @Test + public void testDesDecrypt() { + try { + assertEquals("123456", desDecrypt("7772841DC6099402")); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/eladmin-generator/pom.xml b/eladmin-generator/pom.xml index bc449a61..403f4012 100644 --- a/eladmin-generator/pom.xml +++ b/eladmin-generator/pom.xml @@ -5,7 +5,7 @@ eladmin me.zhengjie - 1.5 + 1.8 4.0.0 @@ -19,7 +19,7 @@ me.zhengjie eladmin-common - 1.5 + 1.8 diff --git a/eladmin-generator/src/main/java/me/zhengjie/service/GenConfigService.java b/eladmin-generator/src/main/java/me/zhengjie/service/GenConfigService.java index 7f912be8..52499d3b 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/service/GenConfigService.java +++ b/eladmin-generator/src/main/java/me/zhengjie/service/GenConfigService.java @@ -2,6 +2,7 @@ package me.zhengjie.service; import me.zhengjie.domain.GenConfig; import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; @@ -23,6 +24,6 @@ public interface GenConfigService { * update * @param genConfig */ - @CachePut(key = "'1'") + @CacheEvict(allEntries = true) GenConfig update(GenConfig genConfig); } diff --git a/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java b/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java index 3917d348..1645f993 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java +++ b/eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java @@ -239,8 +239,4 @@ public class GenUtil { writer.close(); } } - - public static void main(String[] args){ - System.out.println(FileUtil.exist("E:\\1.5.txt")); - } } diff --git a/eladmin-logging/pom.xml b/eladmin-logging/pom.xml index 698d63d7..c4a944dd 100644 --- a/eladmin-logging/pom.xml +++ b/eladmin-logging/pom.xml @@ -5,7 +5,7 @@ eladmin me.zhengjie - 1.5 + 1.8 4.0.0 @@ -15,7 +15,7 @@ me.zhengjie eladmin-common - 1.5 + 1.8 \ No newline at end of file diff --git a/eladmin-logging/src/main/java/me/zhengjie/rest/LogController.java b/eladmin-logging/src/main/java/me/zhengjie/rest/LogController.java index 39f0ddf4..bb7059a7 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/rest/LogController.java +++ b/eladmin-logging/src/main/java/me/zhengjie/rest/LogController.java @@ -2,7 +2,7 @@ package me.zhengjie.rest; import me.zhengjie.domain.Log; import me.zhengjie.service.query.LogQueryService; -import me.zhengjie.utils.SecurityContextHolder; +import me.zhengjie.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; @@ -33,7 +33,7 @@ public class LogController { @GetMapping(value = "/logs/user") public ResponseEntity getUserLogs(Log log, Pageable pageable){ log.setLogType("INFO"); - log.setUsername(SecurityContextHolder.getUserDetails().getUsername()); + log.setUsername(SecurityUtils.getUsername()); return new ResponseEntity(logQueryService.queryAll(log,pageable), HttpStatus.OK); } diff --git a/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java b/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java index b5867f2b..2e6ef26a 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java +++ b/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java @@ -5,12 +5,11 @@ import me.zhengjie.domain.Log; import me.zhengjie.repository.LogRepository; import me.zhengjie.service.LogService; import me.zhengjie.utils.RequestHolder; -import me.zhengjie.utils.SecurityContextHolder; +import me.zhengjie.utils.SecurityUtils; import me.zhengjie.utils.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -66,8 +65,7 @@ public class LogServiceImpl implements LogService { log.setRequestIp(StringUtils.getIP(request)); if(!LOGINPATH.equals(signature.getName())){ - UserDetails userDetails = SecurityContextHolder.getUserDetails(); - username = userDetails.getUsername(); + username = SecurityUtils.getUsername(); } else { try { JSONObject jsonObject = new JSONObject(argValues[0]); diff --git a/eladmin-system/pom.xml b/eladmin-system/pom.xml index 967a6ba8..df5f5c4b 100644 --- a/eladmin-system/pom.xml +++ b/eladmin-system/pom.xml @@ -5,7 +5,7 @@ eladmin me.zhengjie - 1.5 + 1.8 4.0.0 @@ -20,7 +20,7 @@ me.zhengjie eladmin-generator - 1.5 + 1.8 me.zhengjie @@ -32,7 +32,7 @@ me.zhengjie eladmin-tools - 1.5 + 1.8 diff --git a/eladmin-system/src/main/java/me/zhengjie/config/DataScope.java b/eladmin-system/src/main/java/me/zhengjie/config/DataScope.java index 35f9e270..72fc3fa9 100644 --- a/eladmin-system/src/main/java/me/zhengjie/config/DataScope.java +++ b/eladmin-system/src/main/java/me/zhengjie/config/DataScope.java @@ -6,9 +6,8 @@ import me.zhengjie.modules.system.domain.User; import me.zhengjie.modules.system.service.DeptService; import me.zhengjie.modules.system.service.RoleService; import me.zhengjie.modules.system.service.UserService; -import me.zhengjie.utils.SecurityContextHolder; +import me.zhengjie.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.HashSet; @@ -36,7 +35,7 @@ public class DataScope { public Set getDeptIds() { - User user = userService.findByName(SecurityContextHolder.getUserDetails().getUsername()); + User user = userService.findByName(SecurityUtils.getUsername()); // 用于存储部门id Set deptIds = new HashSet<>(); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthenticationController.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthenticationController.java index aa1a6a4b..19de5ddf 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthenticationController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/rest/AuthenticationController.java @@ -7,13 +7,12 @@ import me.zhengjie.modules.security.security.AuthorizationUser; import me.zhengjie.modules.security.security.JwtUser; import me.zhengjie.utils.EncryptUtils; import me.zhengjie.modules.security.utils.JwtTokenUtil; -import me.zhengjie.utils.SecurityContextHolder; +import me.zhengjie.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.security.authentication.AccountExpiredException; -import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -70,8 +69,7 @@ public class AuthenticationController { */ @GetMapping(value = "${jwt.auth.account}") public ResponseEntity getUserInfo(){ - UserDetails userDetails = SecurityContextHolder.getUserDetails(); - JwtUser jwtUser = (JwtUser)userDetailsService.loadUserByUsername(userDetails.getUsername()); + JwtUser jwtUser = (JwtUser)userDetailsService.loadUserByUsername(SecurityUtils.getUsername()); return ResponseEntity.ok(jwtUser); } } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java index 6d7daac1..1dcdc276 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java @@ -10,12 +10,11 @@ import me.zhengjie.modules.system.service.UserService; import me.zhengjie.modules.system.service.dto.MenuDTO; import me.zhengjie.modules.system.service.mapper.MenuMapper; import me.zhengjie.modules.system.service.query.MenuQueryService; -import me.zhengjie.utils.SecurityContextHolder; +import me.zhengjie.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.security.core.userdetails.UserDetails; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -51,8 +50,7 @@ public class MenuController { */ @GetMapping(value = "/menus/build") public ResponseEntity buildMenus(){ - UserDetails userDetails = SecurityContextHolder.getUserDetails(); - User user = userService.findByName(userDetails.getUsername()); + User user = userService.findByName(SecurityUtils.getUsername()); List menuDTOList = menuService.findByRoles(roleService.findByUsers_Id(user.getId())); List menuDTOTree = (List)menuService.buildTree(menuDTOList).get("content"); return new ResponseEntity(menuService.buildMenus(menuDTOTree),HttpStatus.OK); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java index a6812f24..f5e6e6da 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java @@ -122,7 +122,7 @@ public class UserController { */ @GetMapping(value = "/users/validPass/{pass}") public ResponseEntity validPass(@PathVariable String pass){ - UserDetails userDetails = SecurityContextHolder.getUserDetails(); + UserDetails userDetails = SecurityUtils.getUserDetails(); Map map = new HashMap(); map.put("status",200); if(!userDetails.getPassword().equals(EncryptUtils.encryptPassword(pass))){ @@ -138,7 +138,7 @@ public class UserController { */ @GetMapping(value = "/users/updatePass/{pass}") public ResponseEntity updatePass(@PathVariable String pass){ - UserDetails userDetails = SecurityContextHolder.getUserDetails(); + UserDetails userDetails = SecurityUtils.getUserDetails(); if(userDetails.getPassword().equals(EncryptUtils.encryptPassword(pass))){ throw new BadRequestException("新密码不能与旧密码相同"); } @@ -153,9 +153,8 @@ public class UserController { */ @PostMapping(value = "/users/updateAvatar") public ResponseEntity updateAvatar(@RequestParam MultipartFile file){ - UserDetails userDetails = SecurityContextHolder.getUserDetails(); - Picture picture = pictureService.upload(file,userDetails.getUsername()); - userService.updateAvatar(userDetails.getUsername(),picture.getUrl()); + Picture picture = pictureService.upload(file, SecurityUtils.getUsername()); + userService.updateAvatar(SecurityUtils.getUsername(),picture.getUrl()); return new ResponseEntity(HttpStatus.OK); } @@ -168,7 +167,7 @@ public class UserController { @Log("修改邮箱") @PostMapping(value = "/users/updateEmail/{code}") public ResponseEntity updateEmail(@PathVariable String code,@RequestBody User user){ - UserDetails userDetails = SecurityContextHolder.getUserDetails(); + UserDetails userDetails = SecurityUtils.getUserDetails(); if(!userDetails.getPassword().equals(EncryptUtils.encryptPassword(user.getPassword()))){ throw new BadRequestException("密码错误"); } diff --git a/eladmin-system/src/main/resources/config/application-dev.yml b/eladmin-system/src/main/resources/config/application-dev.yml index 827de224..93178b0b 100644 --- a/eladmin-system/src/main/resources/config/application-dev.yml +++ b/eladmin-system/src/main/resources/config/application-dev.yml @@ -59,4 +59,8 @@ jwt: #是否允许生成代码,生产环境设置为false generator: + enabled: true + +#是否开启 swagger-ui +swagger: enabled: true \ No newline at end of file diff --git a/eladmin-system/src/main/resources/config/application-prod.yml b/eladmin-system/src/main/resources/config/application-prod.yml index cd21bb3f..54d5d778 100644 --- a/eladmin-system/src/main/resources/config/application-prod.yml +++ b/eladmin-system/src/main/resources/config/application-prod.yml @@ -66,4 +66,8 @@ generator: # documentation: # swagger: # v2: -# host: # 接口域名或外网ip \ No newline at end of file +# host: # 接口域名或外网ip + +#是否开启 swagger-ui +swagger: + enabled: false \ No newline at end of file diff --git a/eladmin-tools/pom.xml b/eladmin-tools/pom.xml index d6106090..349e1fcf 100644 --- a/eladmin-tools/pom.xml +++ b/eladmin-tools/pom.xml @@ -5,7 +5,7 @@ eladmin me.zhengjie - 1.5 + 1.8 4.0.0 @@ -22,7 +22,7 @@ me.zhengjie eladmin-logging - 1.5 + 1.8 diff --git a/eladmin-tools/src/main/java/me/zhengjie/rest/PictureController.java b/eladmin-tools/src/main/java/me/zhengjie/rest/PictureController.java index 4eedfaec..285c6693 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/rest/PictureController.java +++ b/eladmin-tools/src/main/java/me/zhengjie/rest/PictureController.java @@ -4,13 +4,12 @@ import me.zhengjie.aop.log.Log; import me.zhengjie.domain.Picture; import me.zhengjie.service.PictureService; import me.zhengjie.service.query.PictureQueryService; -import me.zhengjie.utils.SecurityContextHolder; +import me.zhengjie.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.security.core.userdetails.UserDetails; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.HashMap; @@ -47,8 +46,7 @@ public class PictureController { @PreAuthorize("hasAnyRole('ADMIN','PICTURE_ALL','PICTURE_UPLOAD')") @PostMapping(value = "/pictures") public ResponseEntity upload(@RequestParam MultipartFile file){ - UserDetails userDetails = SecurityContextHolder.getUserDetails(); - String userName = userDetails.getUsername(); + String userName = SecurityUtils.getUsername(); Picture picture = pictureService.upload(file,userName); Map map = new HashMap(); map.put("errno",0); diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java b/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java index 35b84688..31dd1251 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java @@ -19,7 +19,7 @@ public interface QiNiuService { * 查配置 * @return */ - @Cacheable(key = "'1'") + @Cacheable(cacheNames = "qiNiuConfig", key = "'1'") QiniuConfig find(); /** @@ -27,7 +27,7 @@ public interface QiNiuService { * @param qiniuConfig * @return */ - @CachePut(key = "'1'") + @CachePut(cacheNames = "qiNiuConfig", key = "'1'") QiniuConfig update(QiniuConfig qiniuConfig); /** 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 7d3a79fc..5aa905e5 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 @@ -1,5 +1,6 @@ package me.zhengjie.service.impl; +import cn.hutool.extra.mail.Mail; import cn.hutool.extra.mail.MailAccount; import cn.hutool.extra.mail.MailUtil; import me.zhengjie.domain.EmailConfig; @@ -76,12 +77,15 @@ public class EmailServiceImpl implements EmailService { /** * 发送 */ + new MailAccount(); try { - MailUtil.send(account, - emailVo.getTos(), - emailVo.getSubject(), - content, - true); + Mail.create(account) + .setTos(String.valueOf(emailVo.getTos())) + .setTitle(emailVo.getSubject()) + .setContent(content) + .setHtml(true) + .setUseGlobalSession(false)//关闭session + .send(); }catch (Exception e){ throw new BadRequestException(e.getMessage()); } diff --git a/pom.xml b/pom.xml index 1d2ce513..1e9dc2ab 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ me.zhengjie eladmin pom - 1.5 + 1.8 eladmin-common