tlias管理系统--JWT--生成&校验

This commit is contained in:
2025-11-30 15:24:10 +08:00
parent 62e2d5eaab
commit 184faafd43
3 changed files with 92 additions and 0 deletions

View File

@@ -69,6 +69,12 @@
<version>2.3.3</version>
</dependency>
<!--JWT依赖-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>

View File

@@ -0,0 +1,58 @@
package com.inmind.controller;
import com.inmind.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* HttpSession演示
*/
@Slf4j
@RestController
public class SessionController {
//设置Cookie
@GetMapping("/c1")
public Result cookie1(HttpServletResponse response){
response.addCookie(new Cookie("login_username","inmind")); //设置Cookie/响应Cookie
return Result.success();
}
//获取Cookie
@GetMapping("/c2")
public Result cookie2(HttpServletRequest request){
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if(cookie.getName().equals("login_username")){
System.out.println("login_username: "+cookie.getValue()); //输出name为login_username的cookie
}
}
return Result.success();
}
//------------------------------------------------------------------------------------------
@GetMapping("/s1")
public Result session1(HttpSession session){//session是服务器根据指定的客户端生成的对应的会话对象
log.info("HttpSession-s1: {}", session.hashCode());
session.setAttribute("loginUser", "tom"); //往session中存储数据
return Result.success();
}
@GetMapping("/s2")
public Result session2(HttpServletRequest request){
HttpSession session = request.getSession();
log.info("HttpSession-s2: {}", session.hashCode());
Object loginUser = session.getAttribute("loginUser"); //从session中获取数据
log.info("loginUser: {}", loginUser);
return Result.success(loginUser);
}
}

View File

@@ -1,8 +1,14 @@
package com.inmind;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@SpringBootTest
@@ -25,4 +31,26 @@ class TliasWebManagementApplicationTests {
System.out.println(ossAccessKeyId);
}
@Test
void testJWT(){//生成JWT
Map<String, Object> claim = new HashMap<>();
claim.put("id",1);
claim.put("name", "zhangsan");
String jwt = Jwts.builder()
.signWith(SignatureAlgorithm.HS256, "inmind")//签名算法
.setClaims(claim)//定义内容数据(载荷)
.setExpiration(new Date(System.currentTimeMillis()))
.compact();
System.out.println(jwt);
}
@Test
void parseJWT(){//解析JWT最重要的就是输入正确的签名密钥
String jwt = "eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiemhhbmdzYW4iLCJpZCI6MSwiZXhwIjoxNzY0NDg3MzIzfQ.Ay2t3bLEX8QPl2MxhsdxoeEzKL-x5ROs4mRTBtuPZWw\n";
Claims claims = Jwts.parser()
.setSigningKey("inmind")
.parseClaimsJws(jwt).getBody();
System.out.println(claims);
}
}