亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

monkey-api-encrypt 1.1.2版本發(fā)布啦

blair / 3110人閱讀

摘要:時(shí)隔多天,發(fā)布了第二個(gè)版本,還是要感謝一些正在使用的朋友們,提出了一些問(wèn)題。配置文件可以在中使用可以在,中使用相同問(wèn)題當(dāng)存在兩個(gè)相同的時(shí),比如請(qǐng)求的和的請(qǐng)求。如果是使用的方式,框架會(huì)自動(dòng)處理,會(huì)為每一個(gè)加上前綴來(lái)區(qū)分不同的請(qǐng)求方式。

時(shí)隔10多天,monkey-api-encrypt發(fā)布了第二個(gè)版本,還是要感謝一些正在使用的朋友們,提出了一些問(wèn)題。

GitHub主頁(yè):https://github.com/yinjihuan/monkey-api-encrypt

本次更新內(nèi)容如下:

支持Spring Boot配置

支持注解開(kāi)啟加解密(Spring Boot中)

增加Spring MVC示例

手動(dòng)注冊(cè)過(guò)濾器使用
@Configuration
public class FilterConfig {

    @Bean
    public FilterRegistrationBean filterRegistration() {
        EncryptionConfig config = new EncryptionConfig();
        config.setKey("abcdef0123456789");
        config.setRequestDecyptUriList(Arrays.asList("/save", "/decryptEntityXml"));
        config.setResponseEncryptUriList(Arrays.asList("/encryptStr", "/encryptEntity", "/save", "/encryptEntityXml", "/decryptEntityXml"));
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new EncryptionFilter(config));
        registration.addUrlPatterns("/*");
        registration.setName("EncryptionFilter");
        registration.setOrder(1);
        return registration;
    }

}
Spring Boot Starter方式使用

啟動(dòng)類(lèi)加@EnableEncrypt注解,開(kāi)啟加解密自動(dòng)配置,省略了手動(dòng)注冊(cè)Filter的步驟

@EnableEncrypt
@SpringBootApplication
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
    
}

配置文件中配置加密的信息,也就是EncryptionConfig

spring.encrypt.key=abcdef0123456789
spring.encrypt.requestDecyptUriList[0]=/save
spring.encrypt.requestDecyptUriList[1]=/decryptEntityXml

spring.encrypt.responseEncryptUriList[0]=/encryptStr
spring.encrypt.responseEncryptUriList[1]=/encryptEntity
spring.encrypt.responseEncryptUriList[2]=/save
spring.encrypt.responseEncryptUriList[3]=/encryptEntityXml
spring.encrypt.responseEncryptUriList[4]=/decryptEntityXml

如果感覺(jué)配置比較繁瑣,你的加解密接口很多,需要大量的配置,還可以采用另一種方式來(lái)標(biāo)識(shí)加解密,就是注解的方式。

響應(yīng)的數(shù)據(jù)需要加密,就在接口的方法上加@Encrypt注解

@Encrypt
@GetMapping("/encryptEntity")
public UserDto encryptEntity() {
    UserDto dto = new UserDto();
    dto.setId(1);
    dto.setName("加密實(shí)體對(duì)象");
    return dto;
}

接收的數(shù)據(jù)需要解密,就在接口的方法上加@Decrypt注解

@Decrypt
@PostMapping("/save")
public UserDto save(@RequestBody UserDto dto) {
    System.err.println(dto.getId() + "	" + dto.getName());
    return dto;
}

同時(shí)需要加解密那么兩個(gè)注解都加上即可

@Encrypt
@Decrypt
@PostMapping("/save")
public UserDto save(@RequestBody UserDto dto) {
    System.err.println(dto.getId() + "	" + dto.getName());
    return dto;
}
Spring MVC中使用

Spring MVC中可以直接在web.xml中注冊(cè)Filter,不方便傳遞的是配置的參數(shù),我們可以配置一個(gè)自定的過(guò)濾器,然后在這個(gè)過(guò)濾器中配置EncryptionFilter

public class ApiEncryptionFilter implements Filter {

    EncryptionFilter filter = null;
    
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        EncryptionConfig config = new EncryptionConfig();
        config.setKey("abcdef0123456789");
        config.setRequestDecyptUriList(Arrays.asList("/save"));
        config.setResponseEncryptUriList(Arrays.asList("/encryptEntity"));
        filter = new EncryptionFilter(config);
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        filter.doFilter(request, response, chain);
    }

    @Override
    public void destroy() {
        
    }

}

web.xml


        自定義加解密過(guò)濾器  
        ApiEncryptionFilter
        com.cxytiandi.mvc.filter.ApiEncryptionFilter



        ApiEncryptionFilter
        /*
 

如果需要使用注解的話(huà)需要在spring的xml中配置ApiEncryptDataInit

注意事項(xiàng)

要么使用手動(dòng)注冊(cè)Filter的方式開(kāi)啟加解密功能,手動(dòng)構(gòu)造EncryptionConfig傳入EncryptionFilter中,要么使用@EnableEncrypt開(kāi)啟加解密功能。

@EnableEncrypt+配置文件可以在Spring Boot,Spring Cloud Zuul中使用

@EnableEncrypt+@Encrypt+@Decrypt可以在Spring Boot,Spring MVC中使用

相同URI問(wèn)題

當(dāng)存在兩個(gè)相同的URI時(shí),比如GET請(qǐng)求的/user和POST的請(qǐng)求/user。如果只想對(duì)其中某一個(gè)進(jìn)行處理,我們的邏輯的是按照URI進(jìn)行匹配,這樣就會(huì)影響到另一個(gè),原因是URI是一樣的。

如果是使用@Encrypt+@Decrypt的方式,框架會(huì)自動(dòng)處理,會(huì)為每一個(gè)URI加上前綴來(lái)區(qū)分不同的請(qǐng)求方式。同時(shí)提供了擴(kuò)展的屬性值,在@Encrypt+@Decrypt中都有value屬性,可以手動(dòng)配置uri。因?yàn)槟承┛蚣懿皇怯玫腟pring MVC的注解,比如CXF,框架無(wú)法做到適配所有的注解,這個(gè)時(shí)候可以用uri屬性來(lái)配置。

配置格式為:請(qǐng)求類(lèi)型+訪(fǎng)問(wèn)的URI

get:/user

post:/user

包括在配置文件中也可以采用前綴的方式來(lái)區(qū)分相同的URI。

歡迎加入我的知識(shí)星球,一起交流技術(shù),免費(fèi)學(xué)習(xí)猿天地的課程(http://cxytiandi.com/course)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/73507.html

相關(guān)文章

  • API加密框架原理解密

    摘要:關(guān)于框架的使用文章請(qǐng)參考前后端交互如何保證數(shù)據(jù)安全性數(shù)據(jù)加密框架版本發(fā)布啦今天的主題是帶領(lǐng)大家去了解框架的實(shí)現(xiàn)原理以及如何去封裝一個(gè)框架,封裝框架的時(shí)候需要考慮哪些東西。 關(guān)于框架的使用文章請(qǐng)參考: 前后端API交互如何保證數(shù)據(jù)安全性?:http://cxytiandi.com/blog/det... API數(shù)據(jù)加密框架monkey-api-encrypt:http://cxytian...

    MAX_zuo 評(píng)論0 收藏0
  • API數(shù)據(jù)加密框架monkey-api-encrypt

    摘要:相比之前的變化內(nèi)置加密算法,可以配置不同的加密不再綁定,通過(guò)配置即可使用加解密框架也可以支持支持用戶(hù)自定義加密算法地址示例代碼沒(méi)有發(fā)布到中央倉(cāng)庫(kù),只發(fā)布到這個(gè)倉(cāng)庫(kù),大家也可以自行下載源碼打包傳到自己公司的私服上。 之前有寫(xiě)過(guò)一篇加密的文章《前后端API交互如何保證數(shù)據(jù)安全性》。主要是在Spring Boot中如何對(duì)接口的數(shù)據(jù)進(jìn)行自動(dòng)加解密操作,通過(guò)注解的方式來(lái)指定是否需要加解密。 原理...

    BetaRabbit 評(píng)論0 收藏0
  • BlockLang 0.2.0 發(fā)布

    摘要:官網(wǎng)歡迎您了解發(fā)布的功能。中使用提交功能管理頁(yè)面等項(xiàng)目資源的變更。 BlockLang 官網(wǎng):https://blocklang.com 歡迎您了解 Block Lang 0.2.0 發(fā)布的功能。此版本增加三個(gè)功能: 在項(xiàng)目中創(chuàng)建空頁(yè)面 在項(xiàng)目中創(chuàng)建分組 使用版本控制系統(tǒng)管理新創(chuàng)建的頁(yè)面 創(chuàng)建空頁(yè)面 頁(yè)面,等同 web 項(xiàng)目中的網(wǎng)頁(yè),或小程序中的頁(yè)面,其中包含頁(yè)面布局、頁(yè)面樣式和...

    alphahans 評(píng)論0 收藏0
  • 重磅發(fā)布:阿里 OpenJDK終于開(kāi)源! 將長(zhǎng)期支持版本 Dragonwell

    摘要:前幾天的北京阿里云峰會(huì),阿里巴巴正式宣布對(duì)外開(kāi)源長(zhǎng)期支持版本。此次,阿里巴巴發(fā)布的預(yù)覽版本對(duì)應(yīng)的版本。同時(shí)對(duì)于阿里云,會(huì)針對(duì)的兩個(gè)版本和隨阿里云鏡像發(fā)布,免費(fèi)提供給阿里云客戶(hù)使用。年月,發(fā)布,根據(jù)阿里大數(shù)據(jù)場(chǎng)景的定制版發(fā)布。 前幾天的北京阿里云峰會(huì),阿里巴巴正式宣布對(duì)外開(kāi)源 OpenJDK 長(zhǎng)期支持版本 Alibaba Dragonwell。作為 Java 全球管理組織 Java Co...

    andot 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<