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