diff --git a/pom.xml b/pom.xml
index 3257e75..51dda5f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,6 +64,12 @@
org.springframework.boot
spring-boot-starter-data-redis
+
+
+ io.jsonwebtoken
+ jjwt
+ 0.9.1
+
org.springframework.boot
diff --git a/src/main/java/org/hlrj/duobao_demo/DuobaoDemoApplication.java b/src/main/java/org/hlrj/duobao_demo/DuobaoDemoApplication.java
index 7402ec0..74d97bf 100644
--- a/src/main/java/org/hlrj/duobao_demo/DuobaoDemoApplication.java
+++ b/src/main/java/org/hlrj/duobao_demo/DuobaoDemoApplication.java
@@ -4,10 +4,12 @@ import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cache.annotation.EnableCaching;
@SpringBootApplication
@EnableCaching
+@ServletComponentScan
@MapperScan("org.hlrj.duobao_demo.mapper")
public class DuobaoDemoApplication {
diff --git a/src/main/java/org/hlrj/duobao_demo/controller/LoginController.java b/src/main/java/org/hlrj/duobao_demo/controller/LoginController.java
index 808d10f..0b67795 100644
--- a/src/main/java/org/hlrj/duobao_demo/controller/LoginController.java
+++ b/src/main/java/org/hlrj/duobao_demo/controller/LoginController.java
@@ -3,12 +3,17 @@ package org.hlrj.duobao_demo.controller;
import lombok.extern.slf4j.Slf4j;
import org.hlrj.duobao_demo.entity.User;
import org.hlrj.duobao_demo.service.IUserService;
+import org.hlrj.duobao_demo.tool.JwtUtils;
import org.hlrj.duobao_demo.tool.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* @program: duobao_demo
* @ClassName LoginController
@@ -29,9 +34,14 @@ public class LoginController {
log.info("登录操作:{}",user);
User user1 = userService.login(user);
if (user1 != null) {
- return Result.error("用户名或者密码错误");
- }else {
- return Result.success("登录成功");
+ Map map = new HashMap<>();
+ map.put("userid",user1.getUserid());
+ map.put("username",user1.getUsername());
+ map.put("createTime",user1.getCreateTime());
+ //生成jwt令牌
+ String jwt = JwtUtils.generateJwt(map);
+ return Result.success(jwt);
}
+ return Result.error("用户名或者密码错误");
}
}
diff --git a/src/main/java/org/hlrj/duobao_demo/entity/User.java b/src/main/java/org/hlrj/duobao_demo/entity/User.java
index ffbc199..6022957 100644
--- a/src/main/java/org/hlrj/duobao_demo/entity/User.java
+++ b/src/main/java/org/hlrj/duobao_demo/entity/User.java
@@ -39,7 +39,7 @@ public class User implements Serializable {
private String password;
@ApiModelProperty(value = "创建时间")
- private LocalDateTime createTime;
+ private java.util.Date createTime;
}
diff --git a/src/main/java/org/hlrj/duobao_demo/tool/DomoFilter.java b/src/main/java/org/hlrj/duobao_demo/tool/DomoFilter.java
new file mode 100644
index 0000000..1ffe759
--- /dev/null
+++ b/src/main/java/org/hlrj/duobao_demo/tool/DomoFilter.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 销毁方法执行了");
+ }
+}
diff --git a/src/main/java/org/hlrj/duobao_demo/tool/JwtUtils.java b/src/main/java/org/hlrj/duobao_demo/tool/JwtUtils.java
new file mode 100644
index 0000000..9404196
--- /dev/null
+++ b/src/main/java/org/hlrj/duobao_demo/tool/JwtUtils.java
@@ -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 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;
+ }
+}
diff --git a/src/main/java/org/hlrj/duobao_demo/tool/Result.java b/src/main/java/org/hlrj/duobao_demo/tool/Result.java
index 234d81e..f783267 100644
--- a/src/main/java/org/hlrj/duobao_demo/tool/Result.java
+++ b/src/main/java/org/hlrj/duobao_demo/tool/Result.java
@@ -29,7 +29,7 @@ public class Result {
return new Result(200, "success", data);
}
public static Result success(String msg) {
- return new Result(400,"msg",null);
+ return new Result(200,"msg",msg);
}
public static Result error(String msg) {return new Result(400,"msg",msg);}
}
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 502e50a..251100f 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -16,7 +16,7 @@
password,
createTime
FROM
- users
+ user
WHERE
username = #{username}
AND
diff --git a/src/test/java/com/example/demo/Demo2ApplicationTests.java b/src/test/java/com/example/demo/Demo2ApplicationTests.java
deleted file mode 100644
index 16686fa..0000000
--- a/src/test/java/com/example/demo/Demo2ApplicationTests.java
+++ /dev/null
@@ -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() {
- }
-
-}
diff --git a/src/test/java/org/hlrj/duobao_demo/DuobaoDemoApplicationTests.java b/src/test/java/org/hlrj/duobao_demo/DuobaoDemoApplicationTests.java
index 03a9a9a..16c1e33 100644
--- a/src/test/java/org/hlrj/duobao_demo/DuobaoDemoApplicationTests.java
+++ b/src/test/java/org/hlrj/duobao_demo/DuobaoDemoApplicationTests.java
@@ -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 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);
+ }*/
+
}