From 06620dd5d2e26fa9544650b158f2f4eee60319c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=B5=E5=AE=AA=E7=91=9E?= <9198107+min-xianrui@user.noreply.gitee.com> Date: Tue, 7 Jan 2025 23:50:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/pom.xml | 2 +- .../security/controller/LoginController.java | 19 ++++---------- .../io/modules/security/dto/LoginDTO.java | 2 +- .../modules/security/oauth2/Oauth2Filter.java | 8 ------ .../modules/security/oauth2/Oauth2Token.java | 1 - .../security/oauth2/TokenGenerator.java | 1 - admin/src/main/resources/application-dev.yml | 2 +- admin/src/main/resources/application.yml | 4 +-- common/pom.xml | 2 +- front/pom.xml | 2 +- .../java/io/controller/UserController.java | 16 +++++------- front/src/main/java/io/dao/UserDao.java | 2 +- front/src/main/java/io/dto/LoginDTO.java | 21 ++++----------- front/src/main/java/io/dto/RegisterDTO.java | 8 +++--- front/src/main/java/io/entity/UserEntity.java | 4 +-- .../interceptor/AuthorizationInterceptor.java | 14 +++------- .../src/main/java/io/service/UserService.java | 4 +-- .../java/io/service/impl/UserServiceImpl.java | 13 ++++------ front/src/main/resources/application-dev.yml | 2 +- front/src/main/resources/application.yml | 4 +-- front/src/main/resources/mapper/UserDao.xml | 4 +-- generator/pom.xml | 2 +- pom.xml | 26 ++----------------- 23 files changed, 48 insertions(+), 115 deletions(-) diff --git a/admin/pom.xml b/admin/pom.xml index b275cf7..f73afb4 100644 --- a/admin/pom.xml +++ b/admin/pom.xml @@ -1,7 +1,7 @@ io.renren - security + java-admin-template 5.4.0 4.0.0 diff --git a/admin/src/main/java/io/modules/security/controller/LoginController.java b/admin/src/main/java/io/modules/security/controller/LoginController.java index 9d1d75f..9766d02 100644 --- a/admin/src/main/java/io/modules/security/controller/LoginController.java +++ b/admin/src/main/java/io/modules/security/controller/LoginController.java @@ -1,8 +1,5 @@ - - package io.modules.security.controller; -import io.common.exception.ErrorCode; import io.common.exception.RenException; import io.common.utils.IpUtils; import io.common.utils.Result; @@ -33,14 +30,12 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; - import java.io.IOException; import java.util.Date; /** * 登录 * - */ @RestController @Tag(name = "登录管理") @@ -56,7 +51,7 @@ public class LoginController { @Parameter(in = ParameterIn.QUERY, ref = "string", name = "uuid", required = true) public void captcha(HttpServletResponse response, String uuid) throws IOException { //uuid不能为空 - AssertUtils.isBlank(uuid, "UUID不能为空!"); + AssertUtils.isBlank(uuid, "UUID不能为空~"); //生成验证码 captchaService.create(response, uuid); } @@ -68,7 +63,7 @@ public class LoginController { //验证码是否正确 boolean flag = captchaService.validate(login.getUuid(), login.getCaptcha()); if (!flag) { - return new Result().error("验证码不正确!"); + return new Result().error("验证码不正确~"); } //用户信息 SysUserDTO user = sysUserService.getByUsername(login.getUsername()); @@ -82,7 +77,7 @@ public class LoginController { log.setStatus(LoginStatusEnum.FAIL.value()); log.setCreatorName(login.getUsername()); sysLogLoginService.save(log); - throw new RenException("用户不存在"); + throw new RenException("用户不存在~"); } //密码错误 if (!PasswordUtils.matches(login.getPassword(), user.getPassword())) { @@ -90,7 +85,7 @@ public class LoginController { log.setCreator(user.getId()); log.setCreatorName(user.getUsername()); sysLogLoginService.save(log); - throw new RenException("密码错误!"); + throw new RenException("密码错误~"); } //账号停用 if (user.getStatus() == UserStatusEnum.DISABLE.value()) { @@ -98,7 +93,7 @@ public class LoginController { log.setCreator(user.getId()); log.setCreatorName(user.getUsername()); sysLogLoginService.save(log); - throw new RenException("账号停用"); + throw new RenException("账号停用~"); } //登录成功 log.setStatus(LoginStatusEnum.SUCCESS.value()); @@ -112,10 +107,8 @@ public class LoginController { @Operation(summary = "退出") public Result logout(HttpServletRequest request) { UserDetail user = SecurityUser.getUser(); - //退出 sysUserTokenService.logout(user.getId()); - //用户信息 SysLogLoginEntity log = new SysLogLoginEntity(); log.setOperation(LoginOperationEnum.LOGOUT.value()); @@ -127,8 +120,6 @@ public class LoginController { log.setCreatorName(user.getUsername()); log.setCreateDate(new Date()); sysLogLoginService.save(log); - return new Result(); } - } diff --git a/admin/src/main/java/io/modules/security/dto/LoginDTO.java b/admin/src/main/java/io/modules/security/dto/LoginDTO.java index a4bec11..a74c516 100644 --- a/admin/src/main/java/io/modules/security/dto/LoginDTO.java +++ b/admin/src/main/java/io/modules/security/dto/LoginDTO.java @@ -19,7 +19,7 @@ public class LoginDTO implements Serializable { private static final long serialVersionUID = 1L; @Schema(title = "用户名", required = true) - @NotBlank(message="{sysuser.username.require}") + @NotBlank(message="用户名不能为空~") private String username; @Schema(title = "密码") diff --git a/admin/src/main/java/io/modules/security/oauth2/Oauth2Filter.java b/admin/src/main/java/io/modules/security/oauth2/Oauth2Filter.java index ef4df05..0c471d2 100644 --- a/admin/src/main/java/io/modules/security/oauth2/Oauth2Filter.java +++ b/admin/src/main/java/io/modules/security/oauth2/Oauth2Filter.java @@ -23,7 +23,6 @@ import java.io.IOException; /** * oauth2过滤器 * - */ public class Oauth2Filter extends AuthenticatingFilter { @@ -31,11 +30,9 @@ public class Oauth2Filter extends AuthenticatingFilter { protected AuthenticationToken createToken(ServletRequest request, ServletResponse response) throws Exception { //获取请求token String token = getRequestToken((HttpServletRequest) request); - if (StrUtil.isBlank(token)) { return null; } - return new Oauth2Token(token); } @@ -57,11 +54,8 @@ public class Oauth2Filter extends AuthenticatingFilter { httpResponse.setContentType("application/json;charset=utf-8"); httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); httpResponse.setHeader("Access-Control-Allow-Origin", HttpContextUtils.getOrigin()); - String json = JsonUtils.toJsonString(new Result().error("未授权访问!")); - httpResponse.getWriter().print(json); - return false; } @@ -94,12 +88,10 @@ public class Oauth2Filter extends AuthenticatingFilter { private String getRequestToken(HttpServletRequest httpRequest) { //从header中获取token String token = httpRequest.getHeader(Constant.TOKEN_HEADER); - //如果header中不存在token,则从参数中获取token if (StrUtil.isBlank(token)) { token = httpRequest.getParameter(Constant.TOKEN_HEADER); } - return token; } diff --git a/admin/src/main/java/io/modules/security/oauth2/Oauth2Token.java b/admin/src/main/java/io/modules/security/oauth2/Oauth2Token.java index 4a2b6d2..51d338d 100644 --- a/admin/src/main/java/io/modules/security/oauth2/Oauth2Token.java +++ b/admin/src/main/java/io/modules/security/oauth2/Oauth2Token.java @@ -7,7 +7,6 @@ import org.apache.shiro.authc.AuthenticationToken; /** * token * - */ public class Oauth2Token implements AuthenticationToken { private String token; diff --git a/admin/src/main/java/io/modules/security/oauth2/TokenGenerator.java b/admin/src/main/java/io/modules/security/oauth2/TokenGenerator.java index 578f576..679316c 100644 --- a/admin/src/main/java/io/modules/security/oauth2/TokenGenerator.java +++ b/admin/src/main/java/io/modules/security/oauth2/TokenGenerator.java @@ -10,7 +10,6 @@ import java.util.UUID; /** * 生成token * - */ public class TokenGenerator { diff --git a/admin/src/main/resources/application-dev.yml b/admin/src/main/resources/application-dev.yml index adf10fd..b4f3af9 100644 --- a/admin/src/main/resources/application-dev.yml +++ b/admin/src/main/resources/application-dev.yml @@ -3,7 +3,7 @@ spring: druid: #MySQL driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/wenhua?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true + url: jdbc:mysql://localhost:3306/admin-template?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true username: root password: 123456 initial-size: 10 diff --git a/admin/src/main/resources/application.yml b/admin/src/main/resources/application.yml index 591593c..6ab298b 100644 --- a/admin/src/main/resources/application.yml +++ b/admin/src/main/resources/application.yml @@ -5,9 +5,9 @@ server: threads: max: 1000 min-spare: 30 - port: 8080 + port: 18080 servlet: - context-path: /admin + context-path: / session: cookie: http-only: true diff --git a/common/pom.xml b/common/pom.xml index e165828..90ba0ec 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -1,7 +1,7 @@ io.renren - security + java-admin-template 5.4.0 4.0.0 diff --git a/front/pom.xml b/front/pom.xml index 36f902c..e5556f0 100644 --- a/front/pom.xml +++ b/front/pom.xml @@ -1,7 +1,7 @@ io.renren - security + java-admin-template 5.4.0 4.0.0 diff --git a/front/src/main/java/io/controller/UserController.java b/front/src/main/java/io/controller/UserController.java index 9611411..bc18773 100644 --- a/front/src/main/java/io/controller/UserController.java +++ b/front/src/main/java/io/controller/UserController.java @@ -34,10 +34,13 @@ public class UserController { @PostMapping("register") @Operation(summary = "注册") public Result register(@RequestBody RegisterDTO dto) { + if (userService.getByUsername(dto.getUsername()) != null) { + return new Result().error("用户名已经存在~"); + } //表单校验 ValidatorUtils.validateEntity(dto); UserEntity user = new UserEntity(); - user.setMobile(dto.getMobile()); + user.setUsername(dto.getUsername()); user.setNickName(dto.getNickName()); user.setPassword(DigestUtil.sha256Hex(dto.getPassword())); user.setCreateDate(new Date()); @@ -56,14 +59,14 @@ public class UserController { return new Result().ok(map); } - @PostMapping("updateInfo") + @PutMapping("update") @Operation(summary = "修改信息") public Result update(@RequestBody RegisterDTO dto) { //表单校验 ValidatorUtils.validateEntity(dto); UserEntity user = new UserEntity(); user.setId(dto.getId()); - user.setMobile(dto.getMobile()); + user.setUsername(dto.getUsername()); user.setNickName(dto.getNickName()); user.setIntroduce(dto.getIntroduce()); user.setPassword(DigestUtil.sha256Hex(dto.getPassword())); @@ -93,11 +96,4 @@ public class UserController { public Result userInfo(@Parameter(hidden = true) @RequestAttribute("userId") Long userId) { return new Result().ok(userId); } - - @GetMapping("notToken") - @Operation(summary = "忽略Token验证测试") - public Result notToken() { - return new Result().ok("无需token也能访问。。。"); - } - } diff --git a/front/src/main/java/io/dao/UserDao.java b/front/src/main/java/io/dao/UserDao.java index 58c523d..5e5dfd0 100644 --- a/front/src/main/java/io/dao/UserDao.java +++ b/front/src/main/java/io/dao/UserDao.java @@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface UserDao extends BaseDao { - UserEntity getUserByMobile(String mobile); + UserEntity getUserByUsername(String username); UserEntity getUserByUserId(Long userId); } diff --git a/front/src/main/java/io/dto/LoginDTO.java b/front/src/main/java/io/dto/LoginDTO.java index 7fbad3e..6c17d35 100644 --- a/front/src/main/java/io/dto/LoginDTO.java +++ b/front/src/main/java/io/dto/LoginDTO.java @@ -3,31 +3,20 @@ package io.dto; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import lombok.Data; - -/** - - -package io.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotBlank; -import lombok.Data; - - /** * 登录表单 * - + */ @Data @Schema(title = "登录表单") public class LoginDTO { - @Schema(title = "手机号") - @NotBlank(message="手机号不能为空") - private String mobile; + @Schema(title = "用户名") + @NotBlank(message="用户名不能为空~") + private String username; @Schema(title = "密码") - @NotBlank(message="密码不能为空") + @NotBlank(message="密码不能为空~") private String password; } diff --git a/front/src/main/java/io/dto/RegisterDTO.java b/front/src/main/java/io/dto/RegisterDTO.java index e09397e..6354ab4 100644 --- a/front/src/main/java/io/dto/RegisterDTO.java +++ b/front/src/main/java/io/dto/RegisterDTO.java @@ -10,21 +10,19 @@ import lombok.Data; /** * 注册表单 * - */ @Data @Schema(title = "注册表单") public class RegisterDTO { private Long id; - @Schema(title = "手机号") - @NotBlank(message="手机号不能为空") - private String mobile; + @Schema(title = "用户名") + @NotBlank(message="用户名不能为空") + private String username; @Schema(title = "密码") @NotBlank(message="密码不能为空") private String password; - @Schema(title = "昵称") private String nickName; diff --git a/front/src/main/java/io/entity/UserEntity.java b/front/src/main/java/io/entity/UserEntity.java index 0dcd382..b7ba927 100644 --- a/front/src/main/java/io/entity/UserEntity.java +++ b/front/src/main/java/io/entity/UserEntity.java @@ -34,9 +34,9 @@ public class UserEntity implements Serializable { */ private String introduce; /** - * 手机号 + * 用户名 */ - private String mobile; + private String username; /** * 密码 */ diff --git a/front/src/main/java/io/interceptor/AuthorizationInterceptor.java b/front/src/main/java/io/interceptor/AuthorizationInterceptor.java index 5228811..4fb41db 100644 --- a/front/src/main/java/io/interceptor/AuthorizationInterceptor.java +++ b/front/src/main/java/io/interceptor/AuthorizationInterceptor.java @@ -37,28 +37,22 @@ public class AuthorizationInterceptor implements HandlerInterceptor { return true; } //从header中获取token - String token = request.getHeader("token"); - - + String token = request.getHeader("Authorization"); //如果header中不存在token,则从参数中获取token if (StrUtil.isBlank(token)) { - token = request.getParameter("token"); + token = request.getParameter("Authorization"); } - //token为空 if (StrUtil.isBlank(token)) { - throw new RenException("token为空!"); + throw new RenException("登录失效~"); } - //查询token信息 TokenEntity tokenEntity = tokenService.getByToken(token); if (tokenEntity == null || tokenEntity.getExpireDate().getTime() < System.currentTimeMillis()) { - throw new RenException(401,"登录失效!"); + throw new RenException(401,"登录失效~"); } - //设置userId到request里,后续根据userId,获取用户信息 request.setAttribute(USER_KEY, tokenEntity.getUserId()); - return true; } } diff --git a/front/src/main/java/io/service/UserService.java b/front/src/main/java/io/service/UserService.java index 6bcec3f..d7a934b 100644 --- a/front/src/main/java/io/service/UserService.java +++ b/front/src/main/java/io/service/UserService.java @@ -11,11 +11,11 @@ import java.util.Map; /** * 用户 * - + */ public interface UserService extends BaseService { - UserEntity getByMobile(String mobile); + UserEntity getByUsername(String username); UserEntity getUserByUserId(Long userId); diff --git a/front/src/main/java/io/service/impl/UserServiceImpl.java b/front/src/main/java/io/service/impl/UserServiceImpl.java index 85fca3b..36a8487 100644 --- a/front/src/main/java/io/service/impl/UserServiceImpl.java +++ b/front/src/main/java/io/service/impl/UserServiceImpl.java @@ -22,8 +22,8 @@ public class UserServiceImpl extends BaseServiceImpl implem private final TokenService tokenService; @Override - public UserEntity getByMobile(String mobile) { - return baseDao.getUserByMobile(mobile); + public UserEntity getByUsername(String username){ + return baseDao.getUserByUsername(username); } @Override @@ -33,21 +33,18 @@ public class UserServiceImpl extends BaseServiceImpl implem @Override public Map login(LoginDTO dto) { - UserEntity user = getByMobile(dto.getMobile()); - AssertUtils.isNull(user, ErrorCode.ACCOUNT_PASSWORD_ERROR); + UserEntity user = getByUsername(dto.getUsername()); + AssertUtils.isNull(user, "用户名不存在~"); //密码错误 if (!user.getPassword().equals(DigestUtil.sha256Hex(dto.getPassword()))) { - throw new RenException("密码错误!"); + throw new RenException("密码输入错误~"); } - //获取登录token TokenEntity tokenEntity = tokenService.createToken(user.getId()); - Map map = new HashMap<>(2); map.put("token", tokenEntity.getToken()); map.put("expire", tokenEntity.getExpireDate().getTime() - System.currentTimeMillis()); - return map; } diff --git a/front/src/main/resources/application-dev.yml b/front/src/main/resources/application-dev.yml index 50e7ce3..01d599a 100644 --- a/front/src/main/resources/application-dev.yml +++ b/front/src/main/resources/application-dev.yml @@ -6,7 +6,7 @@ spring: datasource: druid: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/wenhua?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true + url: jdbc:mysql://localhost:3306/admin-template?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true username: root password: 123456 initial-size: 10 diff --git a/front/src/main/resources/application.yml b/front/src/main/resources/application.yml index af68f80..ed05152 100644 --- a/front/src/main/resources/application.yml +++ b/front/src/main/resources/application.yml @@ -5,9 +5,9 @@ server: threads: max: 1000 min-spare: 30 - port: 8081 + port: 18081 servlet: - context-path: /front + context-path: / session: cookie: http-only: true diff --git a/front/src/main/resources/mapper/UserDao.xml b/front/src/main/resources/mapper/UserDao.xml index 9a898a1..9a0e1b1 100644 --- a/front/src/main/resources/mapper/UserDao.xml +++ b/front/src/main/resources/mapper/UserDao.xml @@ -3,8 +3,8 @@ - + select * from tb_user where username = #{value}