10 changed files with 124 additions and 19 deletions
-
6pom.xml
-
2src/main/java/org/hlrj/duobao_demo/DuobaoDemoApplication.java
-
16src/main/java/org/hlrj/duobao_demo/controller/LoginController.java
-
2src/main/java/org/hlrj/duobao_demo/entity/User.java
-
34src/main/java/org/hlrj/duobao_demo/tool/DomoFilter.java
-
46src/main/java/org/hlrj/duobao_demo/tool/JwtUtils.java
-
2src/main/java/org/hlrj/duobao_demo/tool/Result.java
-
2src/main/resources/mapper/UserMapper.xml
-
13src/test/java/com/example/demo/Demo2ApplicationTests.java
-
20src/test/java/org/hlrj/duobao_demo/DuobaoDemoApplicationTests.java
@ -0,0 +1,34 @@ |
|||
package org.hlrj.duobao_demo.tool; |
|||
|
|||
|
|||
import javax.servlet.*; |
|||
import javax.servlet.annotation.WebFilter; |
|||
import java.io.IOException; |
|||
|
|||
/** |
|||
* @program: duobao_demo |
|||
* @ClassName DomoFilter |
|||
* @description: |
|||
* @author:liuyusong |
|||
* @create: 2025−04-14 15:43 |
|||
* @Version 1.0 |
|||
**/ |
|||
@WebFilter(urlPatterns="/*") |
|||
public class DomoFilter implements Filter { |
|||
|
|||
@Override//初始化方法,只调用一次 |
|||
public void init(FilterConfig filterConfig) throws ServletException { |
|||
System.out.println("init,初始化方法执行了"); |
|||
} |
|||
|
|||
@Override//拦截到请求之后调用,调用多次 |
|||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { |
|||
filterChain.doFilter(servletRequest, servletResponse); |
|||
|
|||
} |
|||
|
|||
@Override//销毁方法,只能调用一次 |
|||
public void destroy() { |
|||
System.out.println("destroy 销毁方法执行了"); |
|||
} |
|||
} |
@ -0,0 +1,46 @@ |
|||
package org.hlrj.duobao_demo.tool; |
|||
|
|||
import io.jsonwebtoken.Claims; |
|||
import io.jsonwebtoken.Jwts; |
|||
import io.jsonwebtoken.SignatureAlgorithm; |
|||
|
|||
import java.time.LocalDateTime; |
|||
import java.util.Date; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @program: duobao_demo |
|||
* @ClassName JwtUtils |
|||
* @description: |
|||
* @author:liuyusong |
|||
* @create: 2025−04-14 14:38 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
public class JwtUtils { |
|||
|
|||
private static String singKey="hongli";//签名密钥 |
|||
private static Long expire = 30*60*1000L;//设置过期时间为半小时 |
|||
|
|||
/** |
|||
* 生成JWT令牌 |
|||
* @param claims |
|||
* @return |
|||
*/ |
|||
public static String generateJwt(Map<String, Object> claims){ |
|||
String jwt = Jwts.builder() |
|||
.addClaims(claims) |
|||
.signWith(SignatureAlgorithm.HS256,singKey) |
|||
.setExpiration(new Date(System.currentTimeMillis()+expire)) |
|||
.compact(); |
|||
return jwt; |
|||
} |
|||
|
|||
public static Claims parseJwt(String jwt){ |
|||
Claims claims = Jwts.parser() |
|||
.setSigningKey(singKey) |
|||
.parseClaimsJws(jwt) |
|||
.getBody(); |
|||
return claims; |
|||
} |
|||
} |
@ -1,13 +0,0 @@ |
|||
package com.example.demo; |
|||
|
|||
import org.junit.jupiter.api.Test; |
|||
import org.springframework.boot.test.context.SpringBootTest; |
|||
|
|||
@SpringBootTest |
|||
class Demo2ApplicationTests { |
|||
|
|||
@Test |
|||
void contextLoads() { |
|||
} |
|||
|
|||
} |
@ -1,13 +1,33 @@ |
|||
package org.hlrj.duobao_demo; |
|||
|
|||
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; |
|||
|
|||
@SpringBootTest |
|||
class DuobaoDemoApplicationTests { |
|||
|
|||
@Test |
|||
void contextLoads() { |
|||
} |
|||
/* @Test |
|||
public void testGenJwt(){ |
|||
Map<String,Object> map=new HashMap<>(); |
|||
map.put("id",1); |
|||
map.put("name","liuyusong"); |
|||
|
|||
String jwt = Jwts.builder() |
|||
.signWith(SignatureAlgorithm.HS256,"hongli")//签名算法 |
|||
.setClaims(map)//自定义内容(有效载荷) |
|||
.setExpiration(new Date(System.currentTimeMillis()+3600*1000))//设置有效期为一个小时 |
|||
.compact(); |
|||
System.out.println(jwt); |
|||
}*/ |
|||
|
|||
|
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue