diff --git a/pom.xml b/pom.xml
index 8c192a0..7b0af85 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,6 +30,7 @@
17
+
com.baomidou
mybatis-plus-spring-boot3-starter
@@ -39,9 +40,30 @@
org.springframework.boot
spring-boot-starter-jdbc
+
+ io.jsonwebtoken
+ jjwt-api
+ 0.12.5
+
+
+ io.jsonwebtoken
+ jjwt-impl
+ 0.12.5
+
+
+ io.jsonwebtoken
+ jjwt
+ 0.12.5
+
+
+ io.jsonwebtoken
+ jjwt-jackson
+ 0.12.5
+
org.springframework.boot
spring-boot-starter-security
+ 3.1.8
org.springframework.boot
@@ -51,10 +73,6 @@
org.springframework.boot
spring-boot-starter-web-services
-
- org.springframework.session
- spring-session-jdbc
-
org.springframework.boot
@@ -88,6 +106,23 @@
4.13.2
test
+
+ com.alibaba
+ fastjson
+ 1.2.78
+
+
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.1
+
+
+ commons-io
+ commons-io
+ 2.5
+
+
diff --git a/src/main/java/com/nkkj/ups/UpsApplication.java b/src/main/java/com/nkkj/ups/UpsApplication.java
index 0679545..bfcb4b6 100644
--- a/src/main/java/com/nkkj/ups/UpsApplication.java
+++ b/src/main/java/com/nkkj/ups/UpsApplication.java
@@ -1,14 +1,23 @@
package com.nkkj.ups;
+
+import okhttp3.*;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
+
+import java.io.IOException;
+
@SpringBootApplication
-@MapperScan("com.nkkj.ups.dao")
+@MapperScan("generator.mapper")
public class UpsApplication {
- public static void main(String[] args) {
+
+
+ public static void main(String[] args) throws IOException {
+
SpringApplication.run(UpsApplication.class, args);
}
diff --git a/src/main/java/com/nkkj/ups/config/OneNetConfig.java b/src/main/java/com/nkkj/ups/config/OneNetConfig.java
new file mode 100644
index 0000000..dd27b84
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/config/OneNetConfig.java
@@ -0,0 +1,5 @@
+package com.nkkj.ups.config;
+
+public class OneNetConfig {
+ private String PRODUCT_ID="";
+}
diff --git a/src/main/java/com/nkkj/ups/config/SecurityConfig.java b/src/main/java/com/nkkj/ups/config/SecurityConfig.java
new file mode 100644
index 0000000..4a93fda
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/config/SecurityConfig.java
@@ -0,0 +1,44 @@
+package com.nkkj.ups.config;
+
+import com.nkkj.ups.security.filter.JwtAuthenticationTokenFilter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.builders.WebSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.web.SecurityFilterChain;
+import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
+
+@Configuration
+@EnableWebSecurity
+public class SecurityConfig {
+ @Autowired
+ JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
+ @Bean
+ SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
+ return http
+ .formLogin(form -> form.disable())//禁用默认登录页面
+ .logout(config->config.disable())//禁用默认登出页面
+ .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))//禁用session,前 后端分离不需要
+ .httpBasic(httpBasic -> httpBasic.disable())//
+ .authorizeHttpRequests(
+ auth -> auth.requestMatchers("/login", "*/logout").permitAll().anyRequest().authenticated()//设置权限,除了登录登出不需要认证,其余均需要认证
+ ).csrf(c->c.disable())
+ .addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class)//添加JWT的处理过滤器,用于从JWT中解析 用户信息
+ .build();
+ }
+// @Bean
+// WebSecurityCustomizer webSecurityCustomizer() {
+// return new WebSecurityCustomizer() {
+// @Override
+// public void customize(WebSecurity web) {
+// web.ignoring().requestMatchers("**/**");
+// }
+// };
+// }
+}
diff --git a/src/main/java/com/nkkj/ups/config/Signature.java b/src/main/java/com/nkkj/ups/config/Signature.java
new file mode 100644
index 0000000..dc97af8
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/config/Signature.java
@@ -0,0 +1,5 @@
+package com.nkkj.ups.config;
+
+public class Signature {
+ public static final String JWT_SIGNATURE="FJNKKJ";
+}
diff --git a/src/main/java/com/nkkj/ups/controller/LoginController.java b/src/main/java/com/nkkj/ups/controller/LoginController.java
index 878cdcd..6164ca6 100644
--- a/src/main/java/com/nkkj/ups/controller/LoginController.java
+++ b/src/main/java/com/nkkj/ups/controller/LoginController.java
@@ -1,8 +1,37 @@
package com.nkkj.ups.controller;
+import com.nkkj.ups.result.R;
+import com.nkkj.ups.service.impl.LoginServiceImpl;
+import com.nkkj.ups.utils.JWT.JwtUtils;
+import generator.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class LoginController {
+ @Autowired
+ LoginServiceImpl loginService;
+ @Autowired
+ JwtUtils jwtUtils;
+ @PostMapping("/login")
+ public R Login(@RequestBody User user) {
+ User userOne=loginService.login(user.getName(), user.getPassword());
+ if(userOne != null) {
+ String token=jwtUtils.createToken(userOne);
+ return R.success(token);
+ }
+ return R.fail("登录信息错误");
+ }
+ @GetMapping("/")
+ public R test() {
+ return R.success("ok");
+ }
+ @GetMapping("/test")
+ public R test1(){
+ return R.success("test");
+ }
}
diff --git a/src/main/java/com/nkkj/ups/controller/MqttController.java b/src/main/java/com/nkkj/ups/controller/MqttController.java
new file mode 100644
index 0000000..8226670
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/controller/MqttController.java
@@ -0,0 +1,8 @@
+package com.nkkj.ups.controller;
+
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class MqttController {
+
+}
diff --git a/src/main/java/com/nkkj/ups/controller/SignController.java b/src/main/java/com/nkkj/ups/controller/SignController.java
new file mode 100644
index 0000000..f08ba3b
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/controller/SignController.java
@@ -0,0 +1,15 @@
+package com.nkkj.ups.controller;
+
+import com.nkkj.ups.result.R;
+import org.springframework.web.bind.annotation.Mapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class SignController {
+ @PostMapping
+ public R sign(){
+
+ return R.success();
+ }
+}
diff --git a/src/main/java/com/nkkj/ups/param/request/OneNetDevice.java b/src/main/java/com/nkkj/ups/param/request/OneNetDevice.java
new file mode 100644
index 0000000..c56d0ce
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/param/request/OneNetDevice.java
@@ -0,0 +1,9 @@
+package com.nkkj.ups.param.request;
+
+import lombok.Data;
+
+@Data
+public class OneNetDevice {
+ private String product_id;
+ private String device_name;
+}
diff --git a/src/main/java/com/nkkj/ups/param/response/OneNetQueryDeviceProperty.java b/src/main/java/com/nkkj/ups/param/response/OneNetQueryDeviceProperty.java
new file mode 100644
index 0000000..2221fbd
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/param/response/OneNetQueryDeviceProperty.java
@@ -0,0 +1,12 @@
+package com.nkkj.ups.param.response;
+
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class OneNetQueryDeviceProperty {
+ private int code;
+ private List data;
+ private String msg;
+ private String request_id;
+}
diff --git a/src/main/java/com/nkkj/ups/param/response/OneNetQueryDevicePropertyData.java b/src/main/java/com/nkkj/ups/param/response/OneNetQueryDevicePropertyData.java
new file mode 100644
index 0000000..d234b1c
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/param/response/OneNetQueryDevicePropertyData.java
@@ -0,0 +1,13 @@
+package com.nkkj.ups.param.response;
+
+import lombok.Data;
+
+@Data
+public class OneNetQueryDevicePropertyData {
+ private String identifier;
+ private String value;
+ private String data_type;
+ private String name;
+ private String access_mode;
+ private long time;
+}
diff --git a/src/main/java/com/nkkj/ups/result/R.java b/src/main/java/com/nkkj/ups/result/R.java
new file mode 100644
index 0000000..48f6f2f
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/result/R.java
@@ -0,0 +1,58 @@
+package com.nkkj.ups.result;
+
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.Data;
+
+@Data
+public class R {
+ private int status;
+ /**
+ * 异常编号
+ */
+ private String errorCode;
+ /**
+ * 异常信息
+ */
+ private String message;
+ /**
+ * 响应数据
+ */
+ private T data;
+ public static R success() {
+ return success(200, null, null);
+ }
+
+ public static R success(T data) {
+ return success(HttpServletResponse.SC_OK, null, data);
+ }
+
+ public static R fail(String message) {
+ return fail(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, null, message, null);
+ }
+
+ public static R fail(String errorCode, String message) {
+ return fail(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, errorCode, message, null);
+ }
+
+ public static R success(int status, String message, T data) {
+ R r = new R<>();
+ r.setStatus(status);
+ r.setMessage(message);
+ r.setData(data);
+
+ return r;
+ }
+
+ public static R fail(int status, String errorCode, String message) {
+ return fail(status, errorCode, message, null);
+ }
+
+ public static R fail(int status, String errorCode, String message, T data) {
+ R r = new R<>();
+ r.setStatus(status);
+ r.setErrorCode(errorCode);
+ r.setMessage(message);
+ r.setData(data);
+ return r;
+ }
+}
diff --git a/src/main/java/com/nkkj/ups/security/JwtAuthenticationEntryPoint.java b/src/main/java/com/nkkj/ups/security/JwtAuthenticationEntryPoint.java
new file mode 100644
index 0000000..30e284a
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/security/JwtAuthenticationEntryPoint.java
@@ -0,0 +1,2 @@
+package com.nkkj.ups.security;
+
diff --git a/src/main/java/com/nkkj/ups/security/filter/JwtAuthenticationTokenFilter.java b/src/main/java/com/nkkj/ups/security/filter/JwtAuthenticationTokenFilter.java
new file mode 100644
index 0000000..975fca8
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/security/filter/JwtAuthenticationTokenFilter.java
@@ -0,0 +1,50 @@
+package com.nkkj.ups.security.filter;
+
+import com.nkkj.ups.utils.JWT.JwtUtils;
+import io.jsonwebtoken.Claims;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.stereotype.Component;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.List;
+
+@Component
+public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
+ @Autowired
+ JwtUtils jwtUtils;
+ @Autowired
+ UserDetailsService userDetailsService;
+ @Override
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
+ System.out.println("2");
+ String token=request.getHeader("Authorization");
+ if (token == null || token.isEmpty()) {
+ // 没有携带 token 则 放行
+ filterChain.doFilter(request, response);
+ return;
+ }
+ Claims claims =jwtUtils.decodeToken(token);
+ String username = claims.getSubject();
+ System.out.println(claims.getSubject());
+ if(SecurityContextHolder.getContext().getAuthentication()==null)
+ {
+// UserDetails userDetails = userDetailsService.loadUserByUsername(username);
+ UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, null, null);
+ SecurityContextHolder.getContext().setAuthentication(authenticationToken);
+ }
+
+
+ filterChain.doFilter(request, response);
+ }
+}
diff --git a/src/main/java/com/nkkj/ups/service/LoginService.java b/src/main/java/com/nkkj/ups/service/LoginService.java
index 9dbb62c..c1d8791 100644
--- a/src/main/java/com/nkkj/ups/service/LoginService.java
+++ b/src/main/java/com/nkkj/ups/service/LoginService.java
@@ -1,5 +1,7 @@
package com.nkkj.ups.service;
+import generator.domain.User;
+
public interface LoginService {
User login(String username, String password);
}
diff --git a/src/main/java/com/nkkj/ups/service/impl/LoginServiceImpl.java b/src/main/java/com/nkkj/ups/service/impl/LoginServiceImpl.java
index ffe2892..9b0dfb3 100644
--- a/src/main/java/com/nkkj/ups/service/impl/LoginServiceImpl.java
+++ b/src/main/java/com/nkkj/ups/service/impl/LoginServiceImpl.java
@@ -1,7 +1,11 @@
package com.nkkj.ups.service.impl;
import com.nkkj.ups.service.LoginService;
+import com.nkkj.ups.utils.JWT.JwtUtils;
+import generator.domain.User;
+import generator.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.stereotype.Service;
@Service
diff --git a/src/main/java/com/nkkj/ups/utils/JWT/JwtUtils.java b/src/main/java/com/nkkj/ups/utils/JWT/JwtUtils.java
new file mode 100644
index 0000000..f995f64
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/utils/JWT/JwtUtils.java
@@ -0,0 +1,33 @@
+package com.nkkj.ups.utils.JWT;
+
+
+import generator.domain.User;
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.Jwts;
+import org.springframework.boot.autoconfigure.security.oauth2.resource.OAuth2ResourceServerProperties;
+import org.springframework.stereotype.Component;
+
+import javax.crypto.SecretKey;
+import java.util.Date;
+@Component
+public class JwtUtils {
+ public static SecretKey secretKey=getSigningKey();
+ public String createToken(User user) {
+ return Jwts.builder()
+ .subject(user.getName())
+ .issuedAt(new Date())
+ .expiration(new Date(new Date().getTime()+1000*60*60*24))
+ .signWith(secretKey)
+ .compact();
+ }
+ public Claims decodeToken(String token) {
+ return Jwts.parser().verifyWith(secretKey).build().parseSignedClaims(token).getPayload();
+
+// Jwts.claims().
+// Jwts.parser().setSigningKey().
+ }
+
+ public static SecretKey getSigningKey() {
+ return Jwts.SIG.HS256.key().build();
+ }
+}
diff --git a/src/main/java/com/nkkj/ups/utils/MqttInfoUtils.java b/src/main/java/com/nkkj/ups/utils/MqttInfoUtils.java
new file mode 100644
index 0000000..bccf2fe
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/utils/MqttInfoUtils.java
@@ -0,0 +1,8 @@
+package com.nkkj.ups.utils;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class MqttInfoUtils {
+
+}
diff --git a/src/main/java/com/nkkj/ups/utils/OneNetUtils.java b/src/main/java/com/nkkj/ups/utils/OneNetUtils.java
new file mode 100644
index 0000000..e63deb8
--- /dev/null
+++ b/src/main/java/com/nkkj/ups/utils/OneNetUtils.java
@@ -0,0 +1,26 @@
+package com.nkkj.ups.utils;
+
+import com.nkkj.ups.param.request.OneNetDevice;
+import com.nkkj.ups.param.response.OneNetQueryDeviceProperty;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
+import java.net.http.HttpResponse;
+
+@Component
+public class OneNetUtils {
+ public OneNetQueryDeviceProperty QueryDeviceProperty(OneNetDevice oneNetDevice) throws IOException, InterruptedException {
+ HttpClient client = HttpClient.newHttpClient();
+ String urlString="https://iot-api.heclouds.com/thingmodel/query-device-property?product_id="+oneNetDevice.getProduct_id()+"device_name="+oneNetDevice.getDevice_name();
+ HttpRequest request=HttpRequest.newBuilder()
+ .uri(URI.create(urlString))
+ .header("athorization","version=2018-10-31&res=products%2FTz9a5iUEkS%2Fdevices%2Fshante&et=1824228600&method=md5&sign=19EMD1rm2JVaRWvcCcxH6A%3D%3D")
+ .build();
+ HttpResponse response=client.send(request,HttpResponse.BodyHandlers.ofString());
+// OneNetQueryDeviceProperty oneNetQueryDeviceProperty=response.body();
+ return null;
+ }
+}
diff --git a/src/main/java/generator/mapper/UserMapper.java b/src/main/java/generator/mapper/UserMapper.java
index 68d9683..2033df2 100644
--- a/src/main/java/generator/mapper/UserMapper.java
+++ b/src/main/java/generator/mapper/UserMapper.java
@@ -1,4 +1,5 @@
package generator.mapper;
+import org.apache.ibatis.annotations.Param;
import generator.domain.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -10,7 +11,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @Entity generator.domain.User
*/
public interface UserMapper extends BaseMapper {
-
+ User selectOneByNameAndPassword(@Param("name") String name, @Param("password") String password);
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 373e53f..5bc8177 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -2,4 +2,5 @@ spring.application.name=ups
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
-spring.datasource.url=jdbc:mysql://localhost:3306/ups?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
\ No newline at end of file
+spring.datasource.url=jdbc:mysql://localhost:3306/ups?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+spring.jackson.parser..allow-unquoted-control-chars=true
\ No newline at end of file
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 59b37bd..549e510 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -13,4 +13,12 @@
id,name,password
+
diff --git a/src/test/java/com/nkkj/ups/test/SampleTest.java b/src/test/java/com/nkkj/ups/test/SampleTest.java
index 1734399..32ffe01 100644
--- a/src/test/java/com/nkkj/ups/test/SampleTest.java
+++ b/src/test/java/com/nkkj/ups/test/SampleTest.java
@@ -1,26 +1,81 @@
-//package com.nkkj.ups.test;
+package com.nkkj.ups.test;
+
+import com.baomidou.mybatisplus.core.toolkit.Assert;
+import com.nkkj.ups.utils.JWT.JwtUtils;
+import generator.domain.User;
+import generator.mapper.UserMapper;
+import io.jsonwebtoken.Claims;
+import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
+import java.net.http.HttpResponse;
+import java.util.List;
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class SampleTest {
+
+ @Autowired
+ private UserMapper userMapper;
+ @Autowired
+ private JwtUtils jwtUtils;
+ @Test
+ public void testSelect() throws IOException, InterruptedException {
+
+ OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
+ .build();
+ Request request1 = new Request.Builder()
+ .url("https://iot-api.heclouds.com/thingmodel/query-device-property?product_id=Tz9a5iUEkS&device_name=shante")
+ .addHeader("Authorization","version=2022-05-01&res=products%2FTz9a5iUEkS%2Fdevices%2Fshante&et=2079998482&method=md5&sign=Gf925YWwSO7SAlOKY98l2Q%3D%3D")
+ .build();
+ Response response1 = okHttpClient.newCall(request1).execute();
+ String string = response1.body().string();
+ System.out.println(string);
+
+
+
+ OkHttpClient client = new OkHttpClient().newBuilder()
+ .build();
+ Request request = new Request.Builder()
+ .url("https://iot-api.heclouds.com/thingmodel/query-device-property?product_id=Tz9a5iUEkS&device_name=shante")
+ .addHeader("Authorization", "version=2022-05-01&res=products%2FTz9a5iUEkS%2Fdevices%2Fshante&et=2079998482&method=md5&sign=Gf925YWwSO7SAlOKY98l2Q%3D%3D")
+ .build();
+ Response response = client.newCall(request).execute();
+ System.out.println(response.body().string());
+
+// HttpClient client = HttpClient.newHttpClient();
+//// String urlString="http://localhost:5000";
//
-//import com.baomidou.mybatisplus.core.toolkit.Assert;
-//import org.junit.jupiter.api.Test;
-//import org.junit.runner.RunWith;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.boot.test.context.SpringBootTest;
-//import org.springframework.test.context.junit4.SpringRunner;
-//
-//import java.util.List;
-//@RunWith(SpringRunner.class)
-//@SpringBootTest
-//public class SampleTest {
-//
-// @Autowired
-// private UserMapper userMapper;
-//
-// @Test
-// public void testSelect() {
+// HttpRequest request=HttpRequest.newBuilder()
+// .setHeader("athorization","version=2018-10-31&res=products%2FTz9a5iUEkS%2Fdevices%2Fshante&et=1824228600&method=md5&sign=19EMD1rm2JVaRWvcCcxH6A%3D%3D")
+// .setHeader("User-Agent", "Apifox/1.0.0 (https://apifox.com)")
+// .setHeader("Accept", "*/*")
+// .uri(URI.create(urlString))
+// .GET()
+// .build();
+// System.out.println(request.headers());
+// HttpResponse response=client.send(request,HttpResponse.BodyHandlers.ofString());
+// System.out.println(response.body());
+// User user = new User();
+// user.setName("32");
+// String token=jwtUtils.createToken(user);
+// System.out.println(token);
// System.out.println(("----- selectAll method test ------"));
+// Claims claims=jwtUtils.decodeToken(token);
+// System.out.println(claims.getSubject());
// List userList = userMapper.selectList(null);
-// Assert.isTrue(5 == userList.size(), "太短");
+//// Assert.isTrue(5 == userList.size(), "太短");
// userList.forEach(System.out::println);
-// }
-//
-//}
\ No newline at end of file
+ }
+
+}
\ No newline at end of file