增加token校验

develop
Hoshi 2024-11-21 11:56:45 +08:00
parent 1d83f81a73
commit 1fb74cc907
1 changed files with 23 additions and 2 deletions

View File

@ -8,23 +8,30 @@ import com.bocloud.sms.interfaces.UserService;
import com.bocloud.sms.model.*;
import com.megatron.common.model.*;
import com.megatron.common.utils.Common;
import io.netty.handler.codec.base64.Base64Decoder;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Base64;
import java.util.List;
import java.util.Map;
/**
* @author tyl
*/
@Slf4j
@RequiredArgsConstructor
@RestController
@RequestMapping("/v1/users")
@ -58,8 +65,22 @@ public class UserController {
*/
@Operation(summary = "查询用户列表")
@GetMapping("/manager/external")
public GeneralResult<GridBean<User>> managerExternalList(Pager pager, @Value(Common.REQ_CONTEXT) RequestContext requestContext) {
return userService.managerExternalList(pager, requestContext);
public GeneralResult<GridBean<User>> managerExternalList(Pager pager, HttpServletRequest request) {
String token = request.getHeader("Token");
String oriString = new String(Base64.getDecoder().decode(token));
String[] split = oriString.split(":");
Assert.isTrue(split.length == 2, "token验证失败");
Assert.isTrue("cmp@v587".equals(split[0]), "token验证失败");
long timestamp = Long.parseLong(split[1]);
LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault());
log.info("token解析时间{}", dateTime);
return userService.managerExternalList(pager, new RequestContext(RequestContext.Catalog.Manager, 1L, 1L, 1L, null));
}
public static void main(String[] args) {
String password = "cmp@v587";
String token = Base64.getEncoder().encodeToString(String.format("%s:%d",password, System.currentTimeMillis()).getBytes());
System.out.println(token);
}