通过nginx代理拦截请求进行全局访问限制

  

本文介绍了通过nginx代理拦截请求进行全局访问限制,分享给大家,具体如下:

  

运行环境:

  
      <李> Ubantu 14.0,李   <李> tomcat7李   <李>,nginx 1.4.6(更新后1.5.6)   
  

项目中经常会用到权限管理,必然的就会存在权限的设定和验证;对于登陆或者模块的权限设定验证,在项目中直接实现,那么问题出现了

  

1。访问资源文件

  

2。多项目访问权限

  

3. tomcat中虚拟目录的访问权限

  

公司项目中用到文件的上传下载,在线预览等功能,当然用户在使用的时候,我们不可能把用户的上传的文件放在项目中,那么必然会用到

  

虚拟目录来映射文件的位置,或者说跨域夸项目,如果没有对这些进行一个访问的权限的限制,那么你将可以不需要任何权限就可以访问下载

  

服务器上的资源(只要路径正确不需要任何权限)、下面拿公司项目实际情况说明一下:

  

比如访问:http://192.168.1.118/filefindPDFfilePath& # 63; filePath=根/(一)/上传应用描述。多克斯将出现

  

通过nginx代理拦截请求进行全局访问限制”> <br/>
  </p>
  <p> filefindPDFfilePath& # 63; filePath=根/(一)/上传应用描述。多克斯http请求会返回,/一/(一)/上传应用描述。多克斯(一个是tomcat server.xml配置的虚拟目录)</p>
  <p>打开浏览器我们直接访问虚拟目录:http://192.168.1.118/imgss/(一个)/上传应用描述。多克斯将出现不需要任何权限可以预览或者使用工具下载服务器资源</p>
  <p> <img src=

  

这会导致客户在使用时,在稍有心思的人面前没有任何安全可言

  

<强>

  

<强>第一种方案:设置tomcat全局过滤器,进行会话验证

  

1。项目中添加过滤器UserLoginFilter.java(这里就不赘述了)

  

2。在tomcat配置文件web . xml添加滤光片

  

通过nginx代理拦截请求进行全局访问限制”> <br/>
  </p>
  <p>注意这里:应用程序/com.rhxy.service。UserLoginFilter指向项目中的UserLoginFilter过滤器</p>
  <p>这里需要说明一下。配置的拦截请求都是tomcat server.xml中配置的虚拟路径</p>
  <p>而所有的访问资源的请求都是需要经过这里,所以直接设置虚拟路径即可</p>
  <p>启动tomcat重新部署项目,进行测试。结果如下</p>
  <p>未登录情况下</p>
  <p>访问:http://192.168.1.118/filefindPDFfilePath& # 63; filePath=根/(一)/12。png打开tomcat日志进行观察:</p>
  <p> <img src=

  

通过nginx代理拦截请求进行全局访问限制”> <br/>
  </p>
  <p> http://192.168.1.118/filefindPDFfilePath& # 63; filePath根/(一)/12.=png </p>
  <p> http://192.168.1.118/imgss/(A)/12. png ,通过后台观察,请求都是有经过过滤器进行会话验证,并且都是验证通过,然而还是出404年现资源在</p>
  <p>服务器中是肯定存在的,tomcat中的虚拟目录设置也没有问题;经过多次测试问题出在tomcat配置文件web . xml配置的过滤器,映射的是项目中的过滤器<h2 class=通过nginx代理拦截请求进行全局访问限制