框架介紹
monkey-api-encrypt 是我之前寫的一個API加密的框架,主要是將加密/解密的邏輯交給框架實現,等數據到達Controller後自動解密了,讓開發人員不需要關注數據的加解密操作。
Github:https://github.com/yinjihuan/monkey-api-encrypt
目前,502個關注,今天能到520麼?
新功能介紹
Bug修復
當項目的context-path配置為/的時候,之前處理的不好,會增加一個/。然後就導致去判斷加解密uri的時候出現兩個//。
GET請求參數解密支持
在1.2之前的版本只支持Post請求體數據的解密操作,也就是說加密的數據必須在請求體裡面才能被正常解密,如下:
<code>@Decrypt
@PostMapping
("/save"
) public UserDto save(@RequestBody
UserDto dto) {System
.err
.println
(dto.getId() +"\t"
+ dto.getName());return
dto
; } /<code>
客戶端提交的數據是加密的內容,到達接口層後UserDto已經是自動解密好了的數據。
1.2版本支持了Get請求參數的解密,使用方式如下:
請求地址:/encryptStr?name=FrAOkAnRWydU/LX7xNEm9w==
name是加密的內容,在接口層接收的需要是解密後的內容,接口定義如下:
<code>public
String encryptStr(String name) { System.out
.println(name);return
"加密字符串"
; } /<code>
通過@Decrypt註解表示該接口需要解密操作,decyptParam指定要解密的參數名,多個英文逗號分隔。
如果不用註解還可以使用配置的方式,如下:
<code>spring.encrypt.requestDecyptParam.get
$/encryptStr=name /<code>
格式為 請求方式 + $ + URI
比如:get$/encryptStr
日常優化
這次將項目結構優化了下,之前是單獨的三個項目,包括兩個示列項目。不方便導入IDEA中。這次調整後最外層增加了父pom,方便導入。
老結構:
新結構:
發佈到Maven中央倉庫
1.2版本之前為了發佈方便,直接用的jitpack倉庫。很多用戶在使用的時候也不看文檔,直接依賴然後就來問我為什麼jar包下載不下來。
這次乾脆還是發佈到Maven中央倉庫得了,方便使用。
依賴配置:
<code><
dependency
><
groupId
>com.cxytiandigroupId
><
artifactId
>monkey-api-encrypt-coreartifactId
><
version
>1.2.RELEASEversion
>dependency
> /<code>
關於作者:尹吉歡,簡單的技術愛好者,《Spring Cloud微服務-全棧技術與案例解析》, 《Spring Cloud微服務 入門 實戰與進階》作者, 公眾號 猿天地 發起人。