se-auth/src/main/java/com/se/auth/controller/TokenController.java
@@ -6,10 +6,7 @@ import com.se.auth.form.RegisterBody; import com.se.auth.service.SysLoginService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import com.se.common.core.domain.R; import com.se.common.core.utils.JwtUtils; import com.se.common.core.utils.StringUtils; @@ -41,6 +38,23 @@ return R.ok(tokenService.createToken(userInfo)); } @GetMapping("validate") @PostMapping("validate") public R<Object> validate(HttpServletRequest request) { try { boolean flag = false; String token = SecurityUtils.getToken(request); if (!StringUtils.isNotEmpty(token)) { String userName = JwtUtils.getUserName(token); flag = !StringUtils.isEmpty(userName); } return R.ok(flag); } catch (Exception ex) { return R.fail(ex.getMessage()); } } @DeleteMapping("logout") public R<?> logout(HttpServletRequest request) { se-common/se-common-core/src/main/java/com/se/common/core/constant/TokenConstants.java
@@ -5,8 +5,22 @@ * * @author admin */ public class TokenConstants { public class TokenConstants { /** * 令牌标识-URL */ public static final String TOKEN = "token"; /** * 令牌标识-URL */ public static final String ACCESS_TOKEN = "accessToken"; /** * 令牌标识-Cookie */ public static final String COOKIE_TOKEN = "Admin-Token"; /** * 令牌自定义标识 */ @@ -21,5 +35,4 @@ * 令牌秘钥 */ public final static String SECRET = "abcdefghijklmnopqrstuvwxyz"; } se-common/se-common-core/src/main/java/com/se/common/core/utils/StringUtils.java
@@ -8,6 +8,9 @@ import com.se.common.core.text.StrFormatter; import org.springframework.util.AntPathMatcher; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; /** * 字符串工具类 * @@ -605,4 +608,19 @@ } return sb.toString(); } public static String getValueFromCookie(HttpServletRequest request,String key) { Cookie[] cookies = request.getCookies(); if (cookies == null || cookies.length == 0) { return null; } for (Cookie cookie : cookies) { if (cookie.getName().equals(key)){ return cookie.getValue(); } } return null; } } se-common/se-common-security/src/main/java/com/se/common/security/utils/SecurityUtils.java
@@ -59,10 +59,23 @@ /** * 根据request获取请求token */ public static String getToken(HttpServletRequest request) { public static String getToken(HttpServletRequest request) { // 从header获取token标识 String token = request.getHeader(TokenConstants.AUTHENTICATION); // 从url获取token标识 if (StringUtils.isEmpty(token)) { token = request.getParameter(TokenConstants.ACCESS_TOKEN); } if (StringUtils.isEmpty(token)) { token = request.getParameter(TokenConstants.TOKEN); } // 从cookie获取token标识 if (StringUtils.isEmpty(token)) { token = StringUtils.getValueFromCookie(request, TokenConstants.COOKIE_TOKEN); } return replaceTokenPrefix(token); }