用过滤器限制Web服务的访问权限
package com.hellking.study.webservice;
import javax.servlet.FilterChain;
。。。
public class WebServicesFilter implements Filter
{
//没有权限访问的IP地址
static final String[] deniedIPList=new String[]{
"123.201",
"192.168",
"25.46",
"124.0.0.1"
};
public boolean isIPDenied(String ipAddr)
{
…
}
//过滤处理的方法
public void doFilter(final ServletRequest req,final ServletResponse res,FilterChain chain)
throws IOException,ServletException
{
HttpServletRequest hreq = (HttpServletRequest)req;
HttpServletResponse hres = (HttpServletResponse)res;
//HttpSession session = hreq.getSession();
String clientIp=req.getRemoteAddr();
System.out.println("开始过滤。。。");
if(isIPDenied(clientIp))
{
//验证不成功,让用户登录。
throw new ServletException("无权限访问此Web服务!");
//res.sendRedirect("../failure.jsp");
}
else
{
//验证成功,继续处理
chain.doFilter(req,res);
}
}
…
}
url地址是
http://www.test.com/testweb/default.aspx
, 结果如下:
Request.ApplicationPath:
/testweb
Request.CurrentExecutionFilePath:
/testweb/default.aspx
Request.FilePath:
/testweb/default.aspx
Request.Path:
/testweb/default.aspx
Request.PathInfo:
Request.PhysicalApplicationPath:
E:\WWW\testweb\
Request.PhysicalPath:
E:\WWW\testweb\default.aspx
Request.RawUrl:
/testweb/default.aspx
Request.Url.AbsolutePath:
/testweb/default.aspx
Request.Url.AbsoluteUri: htt
p://www.test.com/testweb/default.aspx
Request.Url.Host:
www.test.com
Request.Url.LocalPath:
/testweb/default.aspx
WebServicesFilter
过滤器限制了deniedIPList中指定的所有客户端。编写了过滤器后,需要在Web应用的部署描述符中指定使用此过滤器,并且把过滤器映射到目标
URL上。当然,你也可以开发其它过滤器进行访问控制,比如Web服务客户端登录时,把登录信息保存在HTTP会话中,当客户端访问受限的资源时,读取
HTTP会话中客户端信息以决定客户端是否有权限访问目标资源。
除了编写Servlet过滤器实现类外,还需要在web.xml中对它进行配置,并且把过滤器映射到要过滤的目标URI上。以下是过滤器的部署描述符。
<filter>
<filter-name>WebServicesFilter</filter-name>
<filter-class>com.hellking.study.webservice.WebServicesFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>WebServicesFilter</filter-name>
<url-pattern>/services/*</url-pattern>
</filter-mapping>
url-pattern指定了过滤器要过滤的范围。"/services/*"表示以"/services"开始的URL将全部被过滤,这正是
AxisServlet默认的URL。通过上面的配置,只要客户端调用axis
Web服务,就会被WebServicesFilter过滤器过滤。如果客户端IP地址在过滤器的deniedIPList中,那么就不能访问目标服务。
分享到:
相关推荐
本教程将详细讲解如何使用Java Web中的过滤器(Filter)来实现这样的访问控制。过滤器是Servlet API的一部分,它允许我们在请求到达目标资源(如Servlet、JSP页面)之前或之后对请求和响应进行拦截处理。 首先,...
为了实现用户权限的精细化管理,开发者常常会使用过滤器(Filter)来实现对用户访问资源的控制。本文将深入探讨如何在JSP中利用过滤器实现用户权限限制功能。 首先,我们需要了解过滤器的概念。在Servlet规范中,...
3. **Java Web过滤器(Filter)**:在Java Web应用中,Filter是Servlet规范的一部分,用于拦截HTTP请求和响应。我们可以通过自定义Filter实现IP过滤,如在`doFilter()`方法中检查请求的IP地址。 4. **Web应用配置**...
7. **性能优化**:为了保证服务性能,过滤器应该尽可能高效,避免阻塞请求。可以考虑使用缓存或并发控制来提高处理速度。 通过理解和应用这些知识点,开发者可以定制自己的文件服务器访问过滤器,以满足特定的业务...
在Java Web开发中,购物车、字符过滤器和权限过滤器是重要的组成部分,它们共同构建了一个安全、功能完善的用户交互系统。以下是对这些概念的详细解释: 1. **购物车**: 购物车是电商网站的核心功能之一,它允许...
2. 安全控制:限制访问权限,阻止恶意请求,或者进行登录验证。 3. 性能优化:缓存策略,如Etag和Last-Modified检查,减少不必要的资源加载。 4. 日志记录:记录请求信息,便于调试和监控。 5. 国际化:根据用户偏好...
在本文中,我们将深入探讨如何使用过滤器来管理用户权限,这是Web应用程序中常见的安全实践。过滤器在Java Web开发中扮演着重要角色,尤其是在处理请求和响应时进行预处理和后处理。在这个主题中,我们将主要关注...
在IT行业中,过滤器(Filter)是Java Web开发中的一个重要概念,主要应用于Servlet规范中,用于拦截请求和响应,执行一些预处理或后处理任务。...学习和掌握过滤器的使用,对于任何Java Web开发者来说都是必要的技能。
- **过滤器**:无法直接访问Action上下文,因此在进行业务逻辑处理时可能会受到限制。 2. **调用时机**: - **拦截器**:在Action请求的处理过程中可以被多次调用,这使得开发者可以根据实际需求灵活地控制拦截...
9. **权限控制**:通过过滤器实现权限控制,不同角色的用户只能访问相应权限范围内的资源。 10. **MIME类型转换**:根据请求的URL,过滤器可以自动选择合适的MIME类型,提供正确的响应。 总之,Java Web开发中的...
6. **过滤器(Filters)**:在C# Web API中,可以使用过滤器实现全局的认证和授权检查。例如,使用`[Authorize]`属性可以限制只有经过身份验证的用户才能访问特定的API。 7. **跨域资源共享(CORS)**:由于浏览器...
在IT领域,Web服务器的权限设置与事件查看器的正确使用是确保系统安全和稳定运行的重要环节。本教程将深入探讨这两个关键知识点,并通过提供的"超详细web服务器权限设置"和"事件查看器完全无报错.exe"资源,帮助你...
- **权限控制**:如上面示例所示,检查用户是否已登录,限制未授权访问。 - **字符编码转换**:统一处理请求和响应的编码问题。 - **日志记录**:记录请求信息,便于调试和分析。 - **缓存处理**:对静态资源进行...
3. 访问地址过滤:通过过滤器可以限制用户访问特定的URL,例如只有具备特定权限的用户才能访问管理页面。 4. 网站logo过滤:可以通过过滤器动态地为网站中的所有页面添加logo,而不必在每个页面上重复代码。 在扩展...
综上所述,Java禁止直接URL访问图片涉及多个方面,包括Web服务器配置、Java Servlet、权限验证、过滤器、防盗链技术以及CDN的使用等,这些都需要开发者深入理解和灵活运用。通过这些手段,我们可以有效地保护网络...
在Web开发中,权限访问控制和用户会话管理是至关重要的环节。`Filter`过滤器是Java Servlet技术中的一种机制,用于对HTTP请求和响应进行预处理和后处理,从而实现诸如权限验证、数据转换、日志记录等功能。在这个...
本话题主要关注如何使用Java Filter来限制用户的浏览权限,确保只有经过身份验证和授权的用户才能访问特定的资源。这在构建安全的Web应用程序时至关重要。 首先,我们需要了解Java Filter的基本概念。Filter是...
在Web开发领域,过滤器(Filter)和拦截器(Interceptor)是两种常见的机制,它们用于在请求被实际处理之前或之后执行特定的操作。这两种技术在Java Web应用中尤为常见,尤其是使用Servlet API或者Spring框架的时候...
- **权限控制**:实现用户身份验证和授权,限制未授权访问。 - **数据压缩**:提高网络传输效率,对响应进行压缩。 3. **Struts、Hibernate和Spring整合过滤器** - **Struts Filter**:Struts框架中的`Action...
8. **扩展性**:IIS支持各种扩展,如ISAPI(Internet Server Application Programming Interface)过滤器和扩展,使得开发者可以编写自定义的服务器端代码,实现特定功能。 总的来说,Windows XP上的IIS 5.1虽然...