From ecc5f491240d8aa21b1b73289a3bfc0626cb0184 Mon Sep 17 00:00:00 2001 From: liuxinxin Date: Tue, 14 Feb 2023 08:59:14 +0800 Subject: [PATCH] fix --- .../controller/CompanyFiscalCodeController.java | 1 - .../controller/DingOrganizationController.java | 7 +-- .../user/controller/NdUserInfoController.java | 6 +- .../pmapi/user/controller/UserAuthController.java | 72 ++++++++++++++++++++-- 4 files changed, 73 insertions(+), 13 deletions(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/fiscal/controller/CompanyFiscalCodeController.java b/pmapi/src/main/java/com/ningdatech/pmapi/fiscal/controller/CompanyFiscalCodeController.java index 3d2f987..f7847d8 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/fiscal/controller/CompanyFiscalCodeController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/fiscal/controller/CompanyFiscalCodeController.java @@ -33,5 +33,4 @@ public class CompanyFiscalCodeController { companyFiscalCodeManage.fiscalCodeConfigure(reqCompanyFiscalCodeAndSealSnPO); } - } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java index d61ea59..2ce1a10 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java @@ -2,14 +2,13 @@ package com.ningdatech.pmapi.organization.controller; import io.swagger.annotations.ApiModelProperty; +import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.stereotype.Controller; - /** *

- * 前端控制器 + * 前端控制器 *

* * @author Lierbao @@ -25,6 +24,4 @@ public class DingOrganizationController { } - - } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/NdUserInfoController.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/NdUserInfoController.java index 1ac0332..2e29add 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/NdUserInfoController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/NdUserInfoController.java @@ -1,13 +1,12 @@ package com.ningdatech.pmapi.user.controller; -import org.springframework.web.bind.annotation.RequestMapping; - import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; /** *

- * 前端控制器 + * 前端控制器 *

* * @author Lierbao @@ -17,4 +16,5 @@ import org.springframework.stereotype.Controller; @RequestMapping("/pmapi.user/nd-user-info") public class NdUserInfoController { + } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/UserAuthController.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/UserAuthController.java index 233a7a5..4b9f5e0 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/UserAuthController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/UserAuthController.java @@ -1,9 +1,23 @@ package com.ningdatech.pmapi.user.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ningdatech.basic.util.StrPool; +import com.ningdatech.pmapi.common.constant.BizConst; +import com.ningdatech.pmapi.user.security.auth.constants.SessionTimeConstant; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; -import org.springframework.stereotype.Controller; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; /** *

@@ -13,8 +27,58 @@ import org.springframework.stereotype.Controller; * @author Liuxinxin * @since 2023-01-04 */ -@Controller -@RequestMapping("/pmapi.user/user-auth") + +@RestController +@RequestMapping("/api/v1/user/auth") +@Api(tags = {"用户鉴权-相关接口"}) +@RequiredArgsConstructor public class UserAuthController { + private final ObjectMapper objectMapper; + + @PostMapping(value = "/login/password", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) + @ApiOperation(value = "账号密码的登陆方式") + @ApiImplicitParams({ + @ApiImplicitParam(name = "username", value = "用户名", required = true, paramType = "form", dataType = "String"), + @ApiImplicitParam(name = "password", value = "密码", required = true, paramType = "form", dataType = "String"), + @ApiImplicitParam(name = "loginPlatform", value = "PC_PLATFORM PC 端,DRIVER_PLATFORM 驾驶员端,ENTERPRISE_PLATFORM 企业端" + , required = true, paramType = "form", dataType = "String")}) + public void loginByUsernameAndPassword(@RequestParam("username") String username, + @RequestParam("password") String password, + @RequestParam("loginPlatform") String loginPlatform) { + // 不实现任何内容,只是为了出api文档 + } + + @PostMapping(value = "/logout") + @ApiOperation(value = "退出登陆") + public void logout() { + // 不实现任何内容,具体实现交由Spring Security进行管理 + } + + /** + * 当需要身份认证时,跳转到这里 + */ + @GetMapping("/auth-require") + @CrossOrigin(originPatterns = "*", allowCredentials = "true", maxAge = 3600) + public void requireAuthentication(HttpServletResponse response) throws IOException { + response.setContentType(StrPool.CONTENT_TYPE); + response.setStatus(HttpStatus.UNAUTHORIZED.value()); + response.getWriter().write(objectMapper.writeValueAsString(BizConst.UNAUTHENTICATED)); + } + + /** + * 设置session失效 + */ + @GetMapping("/invalid-session") + @CrossOrigin(originPatterns = "*", allowCredentials = "true", maxAge = 3600) + public void invalidSession(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setContentType(StrPool.CONTENT_TYPE); + Cookie cookie = new Cookie(BizConst.COOKIE_KEY, null); + cookie.setPath(request.getContextPath() + "/"); + cookie.setMaxAge(SessionTimeConstant.SESSION_TIME_SECONDS); + response.addCookie(cookie); + response.setStatus(HttpStatus.UNAUTHORIZED.value()); + response.getWriter().write(objectMapper.writeValueAsString(BizConst.UNAUTHENTICATED)); + } + }