最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring boot對(duì)IP地址設(shè)置黑白名單的項(xiàng)目實(shí)踐

 更新時(shí)間:2025年07月13日 11:07:47   作者:程序員阿明  
本文主要介紹了spring boot對(duì)IP地址設(shè)置黑白名單的項(xiàng)目實(shí)踐,通過(guò)YML配置文件定義過(guò)濾器類(lèi)并注冊(cè)FilterConfig來(lái)實(shí)現(xiàn)訪問(wèn)控制,具有一定的參考價(jià)值,感興趣的可以了解一下

1、在yml配置文件中

ip:
  whitelist: IP1  #白名單
  blacklist: IP2 #黑名單

2、定義過(guò)濾器類(lèi)

@Component
public class IpFilter implements Filter {

    //白名單IP列表
    private List<String> whitelist;
    //黑名單IP列表
    private List<String> blacklist;


    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        //獲取上下文信息
        ServletContext context = filterConfig.getServletContext();
        WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
        Environment environment = ctx.getBean(Environment.class);
        //賦予初值
        whitelist = Arrays.stream(environment.getProperty("ip.whitelist").split(","))
                .map(String::trim)
                .collect(Collectors.toList());
        blacklist=Arrays.stream(environment.getProperty("ip.blacklist").split(","))
                .map(String::trim)
                .collect(Collectors.toList());
    }




    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest httpRequest = (HttpServletRequest) request;
        String ip = httpRequest.getRemoteAddr();

        if (whitelist.contains(ip)) {
            // 白名單IP,直接通過(guò)
            chain.doFilter(request, response);
        } else if (blacklist.contains(ip)) {
            // 黑名單IP,拒絕訪問(wèn)
            HttpServletResponse httpResponse = (HttpServletResponse) response;
            httpResponse.sendError(HttpServletResponse.SC_FORBIDDEN, "IP is in blacklist");
        } else {
            // 非黑白名單IP,根據(jù)業(yè)務(wù)需求處理(例如:允許或拒絕)
            chain.doFilter(request, response);
        }
    }


    @Override
    public void destroy() {
        // 清理資源,如果有的話
    }
}

3、注冊(cè)config類(lèi)FilterConfig

@Configuration
public class FilterConfig {
    @Bean
    public FilterRegistrationBean<IpFilter> ipFilterRegistration() {
        FilterRegistrationBean<IpFilter> registrationBean = new FilterRegistrationBean<>();
        registrationBean.setFilter(new IpFilter());
        registrationBean.addUrlPatterns("/*"); // 設(shè)置過(guò)濾器攔截的路徑
        registrationBean.setName("ipFilter");
        registrationBean.setOrder(1); // 設(shè)置過(guò)濾器的順序
        return registrationBean;
    }

}

 到此這篇關(guān)于spring boot對(duì)IP地址設(shè)置黑白名單的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)springboot IP黑白名單內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏

相關(guān)文章

  • SSM 整合的配合文件(分享)

    SSM 整合的配合文件(分享)

    下面小編就為大家分享一篇SSM 整合的配合文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Logback日志存放路徑不統(tǒng)一解決方案

    Logback日志存放路徑不統(tǒng)一解決方案

    這篇文章主要介紹了Logback日志存放路徑不統(tǒng)一解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java?中的?getDeclaredFields()使用與原理解析

    Java?中的?getDeclaredFields()使用與原理解析

    在Java反射機(jī)制中,getDeclaredFields()用于獲取類(lèi)的所有字段,包括私有字段,通過(guò)反射,可以在運(yùn)行時(shí)動(dòng)態(tài)地獲取類(lèi)的信息并操作其成員,本文詳細(xì)介紹了getDeclaredFields()的使用方法、工作原理以及最佳實(shí)踐,涵蓋了反射的基本概念、使用場(chǎng)景和注意事項(xiàng),感興趣的朋友一起看看吧
    2025-01-01
  • Java讀取文件及基于正則表達(dá)式的獲取電話號(hào)碼功能詳解

    Java讀取文件及基于正則表達(dá)式的獲取電話號(hào)碼功能詳解

    這篇文章主要介紹了Java讀取文件及基于正則表達(dá)式的獲取電話號(hào)碼功能,結(jié)合實(shí)例形式詳細(xì)分析了正則匹配操作的相關(guān)語(yǔ)法及電話號(hào)碼匹配的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • 實(shí)例解析Java中的構(gòu)造器初始化

    實(shí)例解析Java中的構(gòu)造器初始化

    這篇文章主要通過(guò)實(shí)例解析Java中的構(gòu)造器初始化,代碼很簡(jiǎn)單,敘述很明確,需要的朋友可以了解下。
    2017-09-09
  • Spring實(shí)戰(zhàn)之依賴(lài)關(guān)系注入之后的行為示例

    Spring實(shí)戰(zhàn)之依賴(lài)關(guān)系注入之后的行為示例

    這篇文章主要介紹了Spring實(shí)戰(zhàn)之依賴(lài)關(guān)系注入之后的行為,結(jié)合實(shí)例形式分析了Spring依賴(lài)關(guān)系注入之后的行為實(shí)現(xiàn)與使用相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • java實(shí)現(xiàn)桌面右下角彈窗效果

    java實(shí)現(xiàn)桌面右下角彈窗效果

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)桌面右下角彈窗效果,模仿類(lèi)似于qq消息彈窗,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Java值得使用Lambda的8個(gè)場(chǎng)景合集

    Java值得使用Lambda的8個(gè)場(chǎng)景合集

    可能對(duì)不少人來(lái)說(shuō),Lambda顯得陌生又復(fù)雜,覺(jué)得Lambda會(huì)導(dǎo)致代碼可讀性下降,但畢竟2023年了,JDK都出了那么多新版本,是時(shí)候試試Lambda了
    2023-08-08
  • MyBatis屬性名和字段名配置不一致的解決

    MyBatis屬性名和字段名配置不一致的解決

    在使用MyBatis進(jìn)行持久化框架開(kāi)發(fā)時(shí),經(jīng)常會(huì)遇到屬性名和數(shù)據(jù)庫(kù)字段名不一致的情況,本文主要介紹了MyBatis屬性名和字段名配置不一致的解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • elasticsearch索引的創(chuàng)建過(guò)程index?create邏輯分析

    elasticsearch索引的創(chuàng)建過(guò)程index?create邏輯分析

    這篇文章主要介紹了elasticsearch索引核心index?create,索引的創(chuàng)建過(guò)程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04

最新評(píng)論

称多县| 大同县| 镶黄旗| 平定县| 翁牛特旗| 友谊县| 渝北区| 长子县| 德令哈市| 平塘县| 九江县| 崇明县| 灵寿县| 凤庆县| 咸丰县| 大宁县| 大渡口区| 阳谷县| 孟连| 文山县| 太仓市| 易门县| 漳平市| 仁布县| 昔阳县| 西华县| 潼关县| 涞源县| 平邑县| 芒康县| 五原县| 定陶县| 三穗县| 汤原县| 南漳县| 开远市| 沧源| 洪湖市| 黎平县| 合阳县| 崇信县|