diff --git a/tlias-web-management/pom.xml b/tlias-web-management/pom.xml index 9578b76..239c30c 100644 --- a/tlias-web-management/pom.xml +++ b/tlias-web-management/pom.xml @@ -69,6 +69,12 @@ 2.3.3 + + + io.jsonwebtoken + jjwt + 0.9.1 + diff --git a/tlias-web-management/src/main/java/com/inmind/controller/SessionController.java b/tlias-web-management/src/main/java/com/inmind/controller/SessionController.java new file mode 100644 index 0000000..9405519 --- /dev/null +++ b/tlias-web-management/src/main/java/com/inmind/controller/SessionController.java @@ -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); + } +} diff --git a/tlias-web-management/src/test/java/com/inmind/TliasWebManagementApplicationTests.java b/tlias-web-management/src/test/java/com/inmind/TliasWebManagementApplicationTests.java index 9051b75..f4fa98c 100644 --- a/tlias-web-management/src/test/java/com/inmind/TliasWebManagementApplicationTests.java +++ b/tlias-web-management/src/test/java/com/inmind/TliasWebManagementApplicationTests.java @@ -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 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); + } + }