1f等于多少uv等于多少pv,1f等于多少安电流

  

     

  

  yue-library简介yue-library是一个基于SpringBoot包的增强库。   

  

  丰富的JDK工具自动组装一系列基础Bean和环境配置项,快速构建SpringCloud项目,让微服务更简单。更新此版本的日志。该版本主要在密钥交换加解密,增强Bean转换能力JDBC新增Elasticsearch-SQL、达梦、PostgreSQL方言.实施   

  

  新增功能【base】ParamUtils提示优化,添加错误原因【base】添加JSONListConverter类型转换器支持ListJSONObject类型处理(JSONArray格式文本数据在查询和映射JDBC实体数据库时不支持映射到ListJSONObject)【base】优化fastjson bean转换的jsonstr识别方法【base】增加强DateUtils和标准UUID工具类为IdUtils,IdUtils优化实现【base】增强fastjson JavaBean的转换能力。它支持字符类型[base]map utils来增强值提取,list来根据键提取map提取的值,以及map和fastjson pulls!17 [crypto]增加了一项重磅功能——密钥交换加密:支持@RequestDecrypt注释实现请求自动解密[crypto]增加了一项重磅功能——密钥交换加密:支持@ResponseEncrypt注释实现响应内容加密[crypto]密钥交换加密:默认提供本地Map和Redis两种密钥存储方案[crypto]。加密:@RequestDecrypt和@ResponseEncrypt批注支持使用交换密钥或自定义密钥加密[web] Repair ApiVersion批注410【web】优化标准HTTP状态代码中响应结果处理器的空值处理[web]添加ServletUtils。GetToken()方法,请求中的getAuthToken [webflux]修复ApiVersion批注。410【jdbc】将在minimumVersion值等于时改进优化jdbc dialect实现,Elasticsearch-SQL,dameng,PostgreSQL dialect【jdbc】jdbc . query for object自动识别Bean类型和简单类型【JDBC】参数美化和增强支持JSONArray数据类型和ListJSONObject数据类型【JDBC】将多行查询结果优化为单行查询结果,需要实现自动识别【JDBC】row mapper类型中的所有mappedClass查询方法,实现了自动一些常量被命名,分页中不吸引人的通用实例PageTVO【jdbc】被删除。增强了自动方言识别,根据驱动类自动识别所需的方言类型。[jdbc]默认的Db Bean实现基于不同的驱动程序类型。使用相应的方言配置【jdbc】优化DAO实现,抽象基础DAO【jdbc】优化所有jdbc方法注释,使得描述更简洁,表达更清晰,注释更规范【jdbc】删除早先存在的一些过时的方法【es】支持ConnectTimeout和SocketTimeout的配置。并将它们的默认值增加到25秒和15秒。Bug修复[base]修复fastjson JavaBean转换BUG #3688【jdbc】修复isDataSize()方法。可能是因为数据库中有多行数据。但返回false的隐患[jdbc]修复了因错误测试而删除的参数类型的美化(现在Character、JSONObject、LocalDateTime支持特殊转换处理和布尔值映射识别)。Maven仓库的实际发布版本号是j8.2.3.2和j11.2.3.2。   

  

  关键pom.xml依赖:   

  

  依赖   

  

  版本   

  

  弹簧靴   

  

  发布   

  

  春云   

  

  霍斯顿。SR10   

  

  春天-云-阿里巴巴   

  

  发布   

  

  胡图尔   

  

  5.6.3   

  

  使用   

  

  1.2.76   

  

  工程。yue-library-yue-libraryyue-library-yue-library-dependencies父pom yue-library-base-base基本库提供丰富的Java工具包,同时提供一系列基本Bean等。基于Hutool的Yue-library-base-crypto加解密模块自动组装,提供数据脱敏Yue-library-web等更多功能。   

基础库WebMvc实现,用于servlet项目│ ├── yue-library-webflux 基础库WebFlux实现,用于响应式编程项目(如:SpringCloudGateway)│ ├── yue-library-data-jdbc 基于SpringJDBC进行二次封装,拥有着强大性能的同时又不失简单、灵活等│ ├── yue-library-data-redis 基于SpringRedis进行二次封装,更简单灵活,提供全局token与登录相关特性等│ ├── yue-library-auth-service 基于SpringSecurity进行二次封装,更简单灵活,提供全局token与登录等特性│ ├── yue-library-auth-client auth-client为auth-service客户端模块,提供获取当前登录用户状态信息等特性│ ├── yue-library-pay 基于pay-java-parent进行二次封装,让你真正做到一行代码实现支付聚合│ ├── yue-library-cloud-oss│ └── yue-library-cloud-sms├── yue-library-samples 基础库示例│ ├── yue-library-testyue-library代码测试项目:单元测试、接口测试、代码示例│ ├── yue-library-test-webfluxyue-library-webflux代码测试项目:单元测试、接口测试、代码示例│ ├── yue-library-template-simpleyue-library模版:SpringBoot项目模版│ └── yue-library-template-sscyue-library模版:SpringCloud项目模版,SOA共享架构(阿里巴巴中台)└── yue快速开始引入项目依赖maven项目,在pom.xml文件中添加如下一段代码,并将${version}替换为对应版本号:

  

  

<parent><groupId>ai.ylyue</groupId><artifactId>yue-library-dependencies</artifactId><version>${version}</version></parent>随后引入所需要的模块,如WebMvc项目引入:yue-library-web

  

依赖说明:yue-library-base为基础模块,一般情况下不需要单独引入,如:web、data-jdbc、data-redis等模块皆已默认依赖。

  

<dependencies><dependency><groupId>ai.ylyue</groupId><artifactId>yue-library-web</artifactId></dependency>...</dependencies>启动项目新建一个SpringBoot main方法启动类:

  

@SpringBootApplicationpublic class TestApplication {public static void main(String<> args) throws Exception {SpringApplication.run(TestApplication.class, args);}}写一个测试接口:

  

@RestController@RequestMapping("/quickstart")public class QuickstartController {@GetMapping("/get")public Result<?> get(JSONObject paramJson) {return ResultInfo.success(paramJson);}}访问接口测试,如:http://localhost:8080/quickstart/get

  

{ "code": 200, "msg": "成功", "flag": true, "count": null, "data": {}}密钥交换密钥交换加密可以实现如下几个特性:

  

每次会话的密钥时随机的,客户端与服务端事先无需约定密钥未直接存储在客户端与服务端中,避免了泄露风险密钥交换过程中,密钥的传输是加密的密钥交换流程

  

密钥交换步骤一:客户端请求传输加密公钥

  

客户端使用密钥存储key,请求获得服务端公钥(用于步骤二请求加密)密钥存储key:作为会话唯一键,在步骤一、步骤二、步骤三中属于必填参数密钥存储key:在用户未登录时一般会随机生成一个UUID,用户登陆后再用token作为别名密钥存储key:用户已登录情况,一般会以用户本次会话token作为存储key服务端收到请求后,生成用于后续传输加解密的公私钥并绑定存储key服务端将生成的公钥返回给客户端密钥交换步骤二:客户端请求最终交换密钥

  

客户端获得服务端的公钥后,创建客户端自身的公私钥客户端使用服务端的公钥加密自身生成的公钥,向服务端请求最终的交换密钥服务端使用私钥解密获得客户端公钥服务端生成最终交换密钥,并使用客户端公钥进行响应加密客户端获得加密的交换密钥后使用客户端私钥解密,获得交换密钥密钥交换步骤三(可选):客户端为服务端密钥的存储key添加别名

  

适用场景:步骤一时用户未登录,使用临时的UUID作为服务端密钥存储key,用户登录后想使用token作为密钥存储key,方便后续传输使用交换密钥加解密

  

客户端获得交换密钥后,请求需要参数加密的接口时,以约定的方式带上密钥存储key,并加密请求参数约定方式:默认为OAuth2 Token认证,故:若步骤一使用UUID作为存储key,需将token添加为存储别名约定方式:除默认方式外支持:Header传参约定、URL Param传参约定(具体传参key为服务端定义,默认key值:Yue-ExchangeKey-StorageKey)服务端解密参数处理业务逻辑后,使用@ResponseEncrypt注解自动加密响应的data参数客户端解密响应结果接口说明默认算法名称

  

RSA_AES:/** RSA算法,此算法用了默认补位方式为RSA/ECB/PKCS1Padding */RSA_ECB_PKCS1("RSA/ECB/PKCS1Padding"), /** 默认的AES加密方式:AES/ECB/PKCS5Padding */AES("AES"), SM2_SM4/** * 算法EC */private static final String ALGORITHM_SM2 = "SM2";public static final String ALGORITHM_NAME = "SM4";密钥交换-第一步:获得加密公钥

  

接口地址:POST /open/v2.3/keyExchange/{storageKey}

  

参数

  

说明

  

参数示例

  

storageKey

  

RESTful路径参数,密钥存储key

  

23ef1f9418e84cc884187e1720ac1529

  

exchangeKeyType

  

交换密钥类型,枚举值:RSA_AES、SM2_SM4

  

RSA_AES

  

密钥交换-第二步:获得交换密钥

  

接口地址:POST /open/v2.3/keyExchange/{storageKey}

  

参数

  

说明

  

参数示例

  

storageKey

  

RESTful路径参数,密钥存储key

  

23ef1f9418e84cc884187e1720ac1529

  

exchangeKeyType

  

交换密钥类型,枚举值:RSA_AES、SM2_SM4

  

RSA_AES

  

encryptedClientPublicKey

  

使用服务端公钥加密的客户端公钥(encryptBase64)

  

SsowXMaZfQiec39 ..略n.. uv/DbVr6gslrjY3Q==

  

密钥交换-第三步:添加存储key别名

  

接口地址:POST /open/v2.3/keyExchange/{storageKey}/addAlias

  

参数

  

说明

  

参数示例

  

storageKey

  

RESTful路径参数,密钥存储key

  

23ef1f9418e84cc884187e1720ac1529

  

storageKeyAlias

  

存储别名

  

cbf55767c47e4d4e9feb90cfa2bdf5aa

  

配置yue: crypto: key-exchange: enabled: true # 默认false,启用密钥交换 key-exchange-storage-type: redis # 使用redis作为密钥交换存储类型注解使用说明@RequestDecrypt请求解密注解:

  

必须与@RequestBody注解一同使用@RequestBody注解只支持使用Body传参,并映射为实体参数。Content-Type=application/json;charset=UTF-8 @RequestDecrypt @PostMapping("/decrypt") public Result<?> decrypt(@RequestBody UserIPO userIPO) { return R.success(userIPO); }@ResponseEncrypt响应加密注解:

  

必须与@ResponseBody注解一同使用,@RestController注解默认已集成@ResponseBody必须使用Result作为返回类型,并且加密的是data参数 @ResponseEncrypt @GetMapping("/{encrypt}") public Result<?> encrypt(@PathVariable String encrypt) { return R.success(encrypt); }收藏一波以表支持吧(≧▽≦)/!

相关文章