From a4e731a6101fa512d077d218605d16479ac7dbaf Mon Sep 17 00:00:00 2001 From: iizmg Date: Thu, 30 Apr 2020 13:32:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/itkk/udf/api/common/CommonUtil.java | 13 ++++ .../itkk/udf/api/page/web/HomeController.java | 16 +++- .../udf/api/rbac/service/UserService.java | 22 +++--- .../api/rbac/web/UserPublicController.java | 20 ++++- .../src/main/resources/application.properties | 3 + .../src/main/resources/templates/common.html | 62 ++++++++++++++- .../src/main/resources/templates/index.html | 2 +- .../main/resources/templates/registered.html | 76 +++++++++++++++++++ 8 files changed, 193 insertions(+), 21 deletions(-) create mode 100644 udf-api/udf-api-server/src/main/resources/templates/registered.html diff --git a/udf-api/udf-api-common/src/main/java/org/itkk/udf/api/common/CommonUtil.java b/udf-api/udf-api-common/src/main/java/org/itkk/udf/api/common/CommonUtil.java index a80747c..864d6c1 100644 --- a/udf-api/udf-api-common/src/main/java/org/itkk/udf/api/common/CommonUtil.java +++ b/udf-api/udf-api-common/src/main/java/org/itkk/udf/api/common/CommonUtil.java @@ -7,6 +7,7 @@ import org.itkk.udf.starter.core.exception.AuthException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.Optional; @@ -60,6 +61,18 @@ public class CommonUtil { return null; } + /** + * 设置cookie + * + * @param httpServletResponse httpServletResponse + * @param name name + * @param value value + */ + public static void setCookie(HttpServletResponse httpServletResponse, String name, String value) { + Cookie cookie = new Cookie(name, value); + cookie.setPath("/"); + httpServletResponse.addCookie(cookie); + } /** * 私有化构造函数 diff --git a/udf-api/udf-api-page/src/main/java/org/itkk/udf/api/page/web/HomeController.java b/udf-api/udf-api-page/src/main/java/org/itkk/udf/api/page/web/HomeController.java index 0a8f867..8da27fd 100644 --- a/udf-api/udf-api-page/src/main/java/org/itkk/udf/api/page/web/HomeController.java +++ b/udf-api/udf-api-page/src/main/java/org/itkk/udf/api/page/web/HomeController.java @@ -1,8 +1,10 @@ package org.itkk.udf.api.page.web; +import org.itkk.udf.api.common.CommonConstant; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; @Controller public class HomeController { @@ -14,7 +16,19 @@ public class HomeController { */ @GetMapping(value = {"/", "/index.html"}) public String index(Model map) { - //跳转到首页 return "index"; } + + /** + * 注册页 + * + * @param map map + * @return String + */ + @GetMapping("/registered.html") + public String registered(@RequestParam("redirectUrl") String redirectUrl, Model map) { + map.addAttribute("redirectUrl", redirectUrl); + map.addAttribute("tokenName", CommonConstant.PARAMETER_NAME_TOKEN); + return "registered"; + } } diff --git a/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/service/UserService.java b/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/service/UserService.java index c0733c6..2fe5f01 100644 --- a/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/service/UserService.java +++ b/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/service/UserService.java @@ -18,7 +18,6 @@ import org.itkk.udf.api.rbac.repository.IUserRepository; import org.itkk.udf.starter.cache.db.dto.DbCacheDto; import org.itkk.udf.starter.cache.db.service.DbCacheService; import org.itkk.udf.starter.core.CoreUtil; -import org.itkk.udf.starter.core.exception.AuthException; import org.itkk.udf.starter.core.exception.ParameterValidException; import org.itkk.udf.starter.core.id.IdWorker; import org.springframework.beans.factory.annotation.Autowired; @@ -90,7 +89,7 @@ public class UserService implements IUserService { if (registeredDto == null) { throw new ParameterValidException("注册信息为空"); } - if (registeredDto.getPswd().equals(registeredDto.getPswdConfim())) { + if (!registeredDto.getPswd().equals(registeredDto.getPswdConfim())) { throw new ParameterValidException("两次密码输入不一致"); } if (iUserRepository.selectCount(new QueryWrapper().lambda().eq(UserEntity::getUserId, registeredDto.getUserId())) > 0) { @@ -224,7 +223,7 @@ public class UserService implements IUserService { @Override public UserDto infoByToken(String token) { //判空 - if (StringUtils.isBlank(token)) { + if (StringUtils.isNotBlank(token)) { //获得token信息 DbCacheDto dbCacheDto = dbCacheService.getDto(token); //判空 @@ -271,18 +270,15 @@ public class UserService implements IUserService { } //获得用户信息 UserDto userDto = this.info(userId); - //判空 - if (userDto == null) { - throw new AuthException("用户不存在"); + //判空 (status = 1 为正常 , 其它为不正常) + if (userDto != null && Integer.valueOf(1).equals(userDto.getStatus())) { + //放入缓存 + cache.put(cacheKey, userDto); + //返回 + return userDto; } - //判定状态(status = 1 为正常 , 其它为不正常) - if (!Integer.valueOf(1).equals(userDto.getStatus())) { - throw new AuthException("用户为非可用状态"); - } - //放入缓存 - cache.put(cacheKey, userDto); //返回 - return userDto; + return null; } /** diff --git a/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/web/UserPublicController.java b/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/web/UserPublicController.java index c4a821f..fe9187f 100644 --- a/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/web/UserPublicController.java +++ b/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/web/UserPublicController.java @@ -11,12 +11,20 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; @RestController @RequestMapping(value = CommonConstant.URL_ROOT_WEB_PUBLIC + "rbac/user") public class UserPublicController { + /** + * httpServletResponse + */ + @Autowired + private HttpServletResponse httpServletResponse; + /** * pmPqrrService */ @@ -31,7 +39,11 @@ public class UserPublicController { */ @PostMapping("login") public RestResponse login(@RequestBody @Valid LoginDto loginDto) { - return new RestResponse<>(userService.login(loginDto)); + final String token = userService.login(loginDto); + Cookie cookie = new Cookie(CommonConstant.PARAMETER_NAME_TOKEN, token); + cookie.setPath("/"); + httpServletResponse.addCookie(cookie); + return new RestResponse<>(token); } /** @@ -42,7 +54,11 @@ public class UserPublicController { */ @PostMapping("registered") public RestResponse registered(@RequestBody @Valid RegisteredDto registeredDto) { - return new RestResponse<>(userService.registered(registeredDto)); + final String token = userService.registered(registeredDto); + Cookie cookie = new Cookie(CommonConstant.PARAMETER_NAME_TOKEN, token); + cookie.setPath("/"); + httpServletResponse.addCookie(cookie); + return new RestResponse<>(token); } } diff --git a/udf-api/udf-api-server/src/main/resources/application.properties b/udf-api/udf-api-server/src/main/resources/application.properties index ff4cc13..2707c58 100644 --- a/udf-api/udf-api-server/src/main/resources/application.properties +++ b/udf-api/udf-api-server/src/main/resources/application.properties @@ -1,5 +1,7 @@ # HTTP +spring.http.encoding.enabled=true spring.http.encoding.force=true +spring.http.encoding.charset=UTF-8 # file encoding spring.mandatory-file-encoding=UTF-8 # INFO @@ -16,6 +18,7 @@ info.build.java.target=${java.version} spring.application.name=${project.name} # HTTP SERVER server.port=${server.port} +server.tomcat.uri-encoding=UTF-8 # compression server.compression.enabled=true server.compression.min-response-size=1KB diff --git a/udf-api/udf-api-server/src/main/resources/templates/common.html b/udf-api/udf-api-server/src/main/resources/templates/common.html index 33a3bbe..7bbaba7 100644 --- a/udf-api/udf-api-server/src/main/resources/templates/common.html +++ b/udf-api/udf-api-server/src/main/resources/templates/common.html @@ -1,6 +1,6 @@ - + - ITKK + [(${title})]
@@ -433,8 +433,16 @@ } }); }); + //注册按钮点击事件 + $('.header-right-bar-registered-div button').on('click', function () { + //跳转到注册页面 + openLoading(); + //获得重定向地址 + var redirectUrl = escape(window.location.href); + //跳转登陆界面 + window.location.href = '/registered.html?redirectUrl=' + redirectUrl; + }); }); - //设置(全局)的AJAX请求默认选项 $(function () { $.ajaxSetup({ @@ -448,10 +456,28 @@ closeLoading(); }, error: function (xhr) { + var content = '服务器开小差了 , 请稍后再试'; + try { + var errorResult = xhr.responseJSON; + if (errorResult) { + if ('org.springframework.web.bind.MethodArgumentNotValidException' === errorResult.errorDetail.type) { + var message = JSON.parse(errorResult.errorDetail.message.replace(/"/g, '"')); + var msgBody = ''; + $.each(message, function (i, item) { + msgBody += (i + 1) + ' . ' + item.defaultMessage + '
'; + }); + content = msgBody; + } else { + content = errorResult.errorDetail.message; + } + } + } catch (e) { + console.log(e); + } $('.toastBox').addToast({ showTimeLabel: false, title: '消息', - content: '服务器开小差了 , 请稍后再试', + content: content, autoHide: true, type: 'info', progress: {show: false}, @@ -497,6 +523,34 @@ $('.custom-loadding')[0].remove(); } } + + //写cookies + function setCookie(name, value) { + var Days = 30; + var exp = new Date(); + exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); + document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString(); + } + + //读取cookies + function getCookie(name) { + var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); + if (arr === document.cookie.match(reg)) { + return unescape(arr[2]); + } else { + return null; + } + } + + //删除cookies + function delCookie(name) { + var exp = new Date(); + exp.setTime(exp.getTime() - 1); + var cval = getCookie(name); + if (cval != null) { + document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); + } + }
diff --git a/udf-api/udf-api-server/src/main/resources/templates/index.html b/udf-api/udf-api-server/src/main/resources/templates/index.html index b0e542e..bd5208c 100644 --- a/udf-api/udf-api-server/src/main/resources/templates/index.html +++ b/udf-api/udf-api-server/src/main/resources/templates/index.html @@ -1,6 +1,6 @@ -
+
diff --git a/udf-api/udf-api-server/src/main/resources/templates/registered.html b/udf-api/udf-api-server/src/main/resources/templates/registered.html new file mode 100644 index 0000000..6b813f3 --- /dev/null +++ b/udf-api/udf-api-server/src/main/resources/templates/registered.html @@ -0,0 +1,76 @@ + + +
+ + +
+
+
+
+
+
+ + + 需全站唯一 +
+
+ + + 至少6位 +
+
+ + + 需和密码一致 +
+
+ + +
+
+
+
+
+
+
+ + + \ No newline at end of file