From 7391a52d8ca9cf07e324b408c5728579ba3202b7 Mon Sep 17 00:00:00 2001 From: 2511 Date: Tue, 27 Aug 2024 15:00:21 +0800 Subject: [PATCH] =?UTF-8?q?mqtt=E4=BF=A1=E6=81=AF=E7=9A=84=E8=8E=B7?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 43 +++++++- .../java/com/nkkj/ups/UpsApplication.java | 13 ++- .../com/nkkj/ups/config/OneNetConfig.java | 5 + .../com/nkkj/ups/config/SecurityConfig.java | 44 +++++++++ .../java/com/nkkj/ups/config/Signature.java | 5 + .../nkkj/ups/controller/LoginController.java | 29 ++++++ .../nkkj/ups/controller/MqttController.java | 8 ++ .../nkkj/ups/controller/SignController.java | 15 +++ .../nkkj/ups/param/request/OneNetDevice.java | 9 ++ .../response/OneNetQueryDeviceProperty.java | 12 +++ .../OneNetQueryDevicePropertyData.java | 13 +++ src/main/java/com/nkkj/ups/result/R.java | 58 +++++++++++ .../security/JwtAuthenticationEntryPoint.java | 2 + .../filter/JwtAuthenticationTokenFilter.java | 50 ++++++++++ .../com/nkkj/ups/service/LoginService.java | 2 + .../ups/service/impl/LoginServiceImpl.java | 4 + .../java/com/nkkj/ups/utils/JWT/JwtUtils.java | 33 +++++++ .../com/nkkj/ups/utils/MqttInfoUtils.java | 8 ++ .../java/com/nkkj/ups/utils/OneNetUtils.java | 26 +++++ .../java/generator/mapper/UserMapper.java | 3 +- src/main/resources/application.properties | 3 +- src/main/resources/mapper/UserMapper.xml | 8 ++ .../java/com/nkkj/ups/test/SampleTest.java | 99 ++++++++++++++----- 23 files changed, 462 insertions(+), 30 deletions(-) create mode 100644 src/main/java/com/nkkj/ups/config/OneNetConfig.java create mode 100644 src/main/java/com/nkkj/ups/config/SecurityConfig.java create mode 100644 src/main/java/com/nkkj/ups/config/Signature.java create mode 100644 src/main/java/com/nkkj/ups/controller/MqttController.java create mode 100644 src/main/java/com/nkkj/ups/controller/SignController.java create mode 100644 src/main/java/com/nkkj/ups/param/request/OneNetDevice.java create mode 100644 src/main/java/com/nkkj/ups/param/response/OneNetQueryDeviceProperty.java create mode 100644 src/main/java/com/nkkj/ups/param/response/OneNetQueryDevicePropertyData.java create mode 100644 src/main/java/com/nkkj/ups/result/R.java create mode 100644 src/main/java/com/nkkj/ups/security/JwtAuthenticationEntryPoint.java create mode 100644 src/main/java/com/nkkj/ups/security/filter/JwtAuthenticationTokenFilter.java create mode 100644 src/main/java/com/nkkj/ups/utils/JWT/JwtUtils.java create mode 100644 src/main/java/com/nkkj/ups/utils/MqttInfoUtils.java create mode 100644 src/main/java/com/nkkj/ups/utils/OneNetUtils.java 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