在我们的真实应用中,我们需要封装我们的服务请求,过滤掉不好的请求信息。在Spring Boot框架中会自动添加OrderedCharacterEncodingFilter和HiddenHttpMethodFilter, 但是我需要的往往更多。

在Spring的框架家族中,如Spring Boot, Spring MVC, SpringWeb 和其它的,都提供了多个不同的服务过滤。我们只需要声明它们作为bean来使用即可。想象一下,我们现在有个应用运行在负载均衡的代理中,用户请求的IP需要是真实的IP而不是代理中IP。Tomcat8提供了我们这个功能,那就是RemoteIpFilter。我们需要把RemoteIpFilter加入到我们的过滤链中。

2.3.1代码实现

1.为了明确什么样的类需要被配置,我们需要创建一个配置类取名为WebConfiguration在src/main/java/org/owen/bookpub目录下。

@Configuration
public class WebConfiguration {
@Bean
public RemoteIpFilter remoteIpFilter() {
return new RemoteIpFilter();
}
}

2.执行程序,你将会看到如下的信息,若果没有,是正常,不需要纠结这个。

..FilterRegistrationBean: Mapping filter: 'remoteIpFilter' to:[/*]

2.3.2代码说明

在我们的主类BookPubApplication中,我们看到@SpringBootApplication的注释,这个注释包含了@ComponentScan。@ComponentScan构造是Spring Boot会去探测WebConfiguration上的@Configration类,并将它添加到上下文中。所以,我们声明的WebConfiguration就相当于直接放入到BookPubApplication中一样。

@Bean public RemoteIpFilter remoteIpFilter(){…}声明简单创建一个bean给RemoteIpFilter类,它将会加入到过器链中并自动装配。这样的话,只要我们想加更多的过滤器到配置中,例如我们要指定过滤器去应用特殊的URL,我们可以创建@Bean 的FilterRegistrationBean的类型。

2.3创建用户访问过滤器(安全性)相关推荐

  1. MySQL给用户设置密码(修改密码)、创建用户,grant为某个IP、某个网段或所有IP地址创建访问用户并授权

    1. 设置密码 1.1 我们刚安装完mysql,登录是不需要密码的,可以直接进入,如下图. 1.2 感觉没密码总是不靠谱,所以想要设置一个密码.其实我们只要修改一下用户表中对应用户的密码就可以重新设置 ...

  2. 阿里云mysql创建多个用户_阿里云MySQL创建指定用户访问指定表

    欢迎大家关注我的公众号,有问题可以及时和我交流. 1.首先进入到root用户环境 mysql -uroot -p 输入自己的root密码登录. 登录成功之后如果表之前已经存在的话就不需要创建,如果表不 ...

  3. Linux 创建用户并限制其访问目录,设置密码为永不过期

    创建用户及访问目录 useradd sou -d /tmp/sou -M 设置用户密码 passwd sou Tip:输入命令后,会提示输入密码 修改密码为永不过期 chage -M 99999 so ...

  4. Mysql创建用户给局域网内用户使用,开放权限,开放ip访问。

    需求: 开放数据库给局域网内用户使用,需要创建用户以及开放部分权限. 解决: 1.登录mysql数据库 未设置全局变量需要进入相关路径 cd mysql8.0/bin 登录mysql mysql -u ...

  5. oracle创建用户赋予访问某一视图的权限

    Oracle创建一个用户,只有访问某一视图的权限 登录到sysdba用户 创建用户 create user [username] identified by [password]; 授予用户连接查询权 ...

  6. oracle创建用户(让他可以访问其他用户的表)

    一.创建一个普通用户,让他可以访问其他用户的表 第一步:创建用户 create user user80 identified by user80; 第二步:授权 grant connect,resou ...

  7. linux新建用户只能查看自己的目录,Linux创建用户只能访问某个目录

    文章目录需求:创建一个用户,让他只能访问某个目录用 setfacl 实现:用ssh+ftp的方法实现:需求:创建一个用户,只能用于ftp登陆 需求:创建一个用户,让他只能访问某个目录 useradd ...

  8. linux 创建用户并限制其访问目录

    1.创建用户及访问目录 useradd username-d /mnt/storage2/design_draft -M 2.设置密码 passwd username 3.创建组(如已有组则跳过) g ...

  9. oracle 授权访问条空间,oracle创建用户和角色、管理授权以及表空间操作

    show user 显示当前用户 connect username/password@datebasename as sysdba 切换用户和数据库 和用户身份 Oracle登录身份有三种: norm ...

  10. linux配置sftp访问指定目录,Linux创建用户,SFTP只允许访问指定目录

    首先创建用户 useradd lus1 passwd lus1 我这里配置lus1这个用户目录,为sftp指向目录,即/home/lus1/ vim /etc/ssh/sshd_config //这个 ...

最新文章

  1. Python一维二维数据的格式化和处理
  2. 微软语音扩展全球语言支持,发布160个新声音
  3. 区块链开源实现 hyperledger fabric 概念与原理
  4. Java 对象的序列化和反序列化
  5. centos压缩和解压缩
  6. rabbitmq取消自动重连_rabbitmq客户端自动重连
  7. 过年前谈个恋爱很过分吗?
  8. php下拉上滑分页,Flutter实现下拉刷新 上拉分页加载更多
  9. 看了部电影——青春期
  10. Oracle官网下载JDk文档
  11. 正确打开db文件的方式,避免乱码和无意义内容
  12. xml文件编辑器----foxe_CHS
  13. MFiX存储ReactionRates的模块
  14. js闭包循环原因_「js基础」JavaScript入门,难不难你来说
  15. 《智慧彼岸之定心经》
  16. 测试oschina
  17. 中科院计算所职业培训中心2014年四季度课程安排
  18. Armadillo使用介绍(十二):fft / ifft
  19. 缓存着色 Page color测试
  20. 了解appium自动化的工作原理(uiautomator)

热门文章

  1. Python 操作 mongodb 数据库
  2. 让一个数字显示指定位数
  3. 字典(JSON)与模型的转换
  4. 对某目录下的文件按照日期进行排序
  5. C/C++ 基础算法1
  6. 华为QoS中CBQ队列详解
  7. IPv6 to IPv4过渡技术——手工隧道和GRE隧道配置实例
  8. 华三 h3c 基于IP子网的vlan
  9. Dubbo扩展点机制分析(二)
  10. CentOS 7 yum 安装 Nginx