成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

告別惡意訪問!Spring Boot 實現 IP 白名單限制的終極指南

開發 前端
本文展示了如何在 Spring Boot 中自定義過濾器實現 IP 白名單功能。從配置讀取到過濾器實現,再到前端頁面的結合,完整覆蓋了開發流程。

在Web開發中,IP白名單是保證系統安全的一種重要機制。通過限制訪問的IP地址范圍,我們可以有效防止未經授權的訪問。本文將詳細講解如何在Spring Boot中自定義過濾器實現IP白名單功能。

項目環境

Spring Boot 版本:3.3

前端技術:Thymeleaf 模板引擎 + jQuery + Bootstrap

包名:com.icoderoad

項目配置

pom.xml 配置

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf-spring5</artifactId>
    </dependency>
    <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>bootstrap</artifactId>
        <version>5.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>jquery</artifactId>
        <version>3.6.4</version>
    </dependency>
</dependencies>


application.yaml 配置

ip-whitelist:
  allowed-ips:
    - 127.0.0.1
    - 192.168.1.100

自定義過濾器實現

讀取配置類

使用 @ConfigurationProperties 注解讀取配置。

package com.icoderoad.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
@Data
@Component
@ConfigurationProperties(prefix = "ip-whitelist")
public class IpWhitelistConfig {
    private List<String> allowedIps;
}

自定義過濾器

創建一個過濾器類,用于攔截請求并校驗IP地址。

package com.icoderoad.filter;
import com.icoderoad.config.IpWhitelistConfig;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Component;
import java.io.IOException;
@Component
public class IpWhitelistFilter implements Filter {
    private final IpWhitelistConfig ipWhitelistConfig;
    public IpWhitelistFilter(IpWhitelistConfig ipWhitelistConfig) {
        this.ipWhitelistConfig = ipWhitelistConfig;
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest httpRequest = (HttpServletRequest) request;
        String clientIp = httpRequest.getRemoteAddr();
        if (ipWhitelistConfig.getAllowedIps().contains(clientIp)) {
            chain.doFilter(request, response);
        } else {
            response.getWriter().write("Access Denied");
        }
    }
}

注冊過濾器

通過配置類注冊過濾器。

package com.icoderoad.config;
import com.icoderoad.filter.IpWhitelistFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FilterConfig {
    @Bean
    public FilterRegistrationBean<IpWhitelistFilter> ipWhitelistFilterRegistration(IpWhitelistFilter filter) {
        FilterRegistrationBean<IpWhitelistFilter> registrationBean = new FilterRegistrationBean<>();
        registrationBean.setFilter(filter);
        registrationBean.addUrlPatterns("/*");
        return registrationBean;
    }
}

前端頁面實現

HTML 頁面

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>IP 白名單演示</title>
    <link rel="stylesheet" >
    <script src="http://cdn.jsdelivr.net/npm/jquery@3.6.4/dist/jquery.min.js"></script>
    <script src="http://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-5">
    <h1>IP 白名單功能演示</h1>
    <p>如果您看到此頁面,說明您的 IP 地址已被允許訪問。</p>
</div>
</body>
</html>

總結

本文展示了如何在 Spring Boot 中自定義過濾器實現 IP 白名單功能。從配置讀取到過濾器實現,再到前端頁面的結合,完整覆蓋了開發流程。通過這種方式,可以輕松實現對系統訪問的安全管控。

責任編輯:武曉燕 來源: 路條編程
相關推薦

2014-05-12 09:08:19

2011-01-21 17:53:44

Zimbra

2021-08-28 05:02:22

Asp安全防護

2012-02-09 09:40:37

虛擬化虛擬桌面VDI

2013-09-16 09:57:52

2017-09-15 15:16:54

2025-01-13 09:10:00

白名單IPCIDR

2010-05-24 13:36:11

2009-12-24 15:40:57

IDC廠商防火墻白名單

2013-02-19 10:17:18

2024-02-23 18:59:32

Python函數編程

2023-07-11 08:55:26

系統白名單AO

2013-09-16 11:10:30

2016-06-07 11:15:39

2023-07-03 00:39:42

2025-02-28 05:50:12

2023-12-07 08:19:17

阿里云故障

2024-07-08 11:30:35

2024-11-14 13:16:58

2013-09-29 09:41:14

國家互聯網移動應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人在线免费视频 | 亚洲福利一区二区 | 欧美aaa| 亚洲国产欧美在线人成 | 亚洲欧美激情精品一区二区 | 综合一区二区三区 | 日韩精品1区2区 | 国产免费色 | 日韩欧美视频 | 国产一区不卡 | 国产综合av | 国产精品久久久久久久午夜片 | 国产中文字幕av | av中文字幕网 | 精品视频一区二区 | 久久精品视频亚洲 | 成人黄色三级毛片 | 成年人网站在线观看视频 | 国产成人免费视频网站高清观看视频 | 在线视频91| 免费一级黄色录像 | 国产一区二区日韩 | 欧美激情一区二区三区 | 亚洲精品成人av久久 | 日韩成人高清在线 | www.中文字幕.com | 成人妇女免费播放久久久 | 欧美激情一区 | 九色91视频 | 国产精品一区一区 | 久久精品免费一区二区 | 国产精品亚洲视频 | 久久精品国产免费 | 视频1区2区| 国产精品美女久久久久久免费 | 日韩久久久久久久 | 亚洲精品乱码久久久久久蜜桃91 | 久久精品国产99国产精品 | 91精品国产欧美一区二区 | 亚洲国产一区二区三区在线观看 | 日韩欧美中文在线 |