From a1f4b2ad31f23473e8c63c166bb18f0f6b37adb1 Mon Sep 17 00:00:00 2001 From: wangyu <727842003@qq.com> Date: Sat, 16 Jan 2021 01:28:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=97=A5=E5=BF=97=E5=85=A5=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/controller/LoginController.java | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/flyfish-user/src/main/java/com/flyfish/framework/controller/LoginController.java b/flyfish-user/src/main/java/com/flyfish/framework/controller/LoginController.java index 056c007..6087059 100644 --- a/flyfish-user/src/main/java/com/flyfish/framework/controller/LoginController.java +++ b/flyfish-user/src/main/java/com/flyfish/framework/controller/LoginController.java @@ -3,9 +3,16 @@ package com.flyfish.framework.controller; import com.flyfish.framework.bean.Result; import com.flyfish.framework.config.RSAKeys; import com.flyfish.framework.config.properties.SecurityProperties; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.flyfish.framework.configuration.annotations.CurrentUser; +import com.flyfish.framework.configuration.jwt.TokenProvider; +import com.flyfish.framework.domain.po.User; +import com.flyfish.framework.utils.UserUtils; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.ReactiveSecurityContextHolder; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; import javax.annotation.Resource; @@ -20,6 +27,8 @@ public class LoginController { @Resource private SecurityProperties securityProperties; + @Resource + private TokenProvider tokenProvider; /** * 获取公钥,如果有的话 @@ -33,4 +42,19 @@ public class LoginController { } return Result.error("尚未配置加密密钥!"); } + + /** + * 刷新token,返回新token + * 这里不销毁原来的token,等他自动过期 + * @return 结果 + */ + @GetMapping("refresh") + public Mono refreshToken(ServerWebExchange exchange) { + return ReactiveSecurityContextHolder.getContext() + .doOnNext(securityContext -> { + Authentication authentication = securityContext.getAuthentication(); + tokenProvider.addToken(exchange, authentication); + }) + .then(); + } }