- 浏览: 957356 次
- 性别:
- 来自: 江西上饶
文章分类
- 全部博客 (460)
- p.spring (56)
- p.maven (20)
- p.ant (17)
- p.jee (18)
- p.jse (33)
- p.ofbiz (31)
- p.软件工程 (8)
- p.struts2 (5)
- p.hibernate (5)
- linux (25)
- 设计模式 (2)
- p.javascript (11)
- 硬件 (1)
- p.jsp (2)
- p.windows批处理 (1)
- 操作系统问题 (5)
- 算法 (1)
- p.mysql (7)
- p.sql (5)
- p.c (1)
- google产品 (0)
- 内存 (1)
- p.struts (1)
- p.freemarker (7)
- p.css (4)
- p.log4j (10)
- p.html (3)
- 淘宝产品 (0)
- 其他 (3)
- 编译器 (0)
- svn (4)
- p.spring.security (11)
- 图形 (0)
- p.xml (1)
- p.ssh (0)
- p.jquery (4)
- p.jdbc (3)
- p.flex (0)
- p.c++ (0)
- p.c#Net (0)
- p.assembly (0)
- p.sqlserver (0)
- p.其他 (3)
- p.webwork (21)
- p.wap (12)
- p.cglib (1)
- p.jee服务器 (11)
- windows (2)
- p.iphone (1)
- p.java.分布式与集群 (2)
- p.ibatis (16)
- p.eclipse (5)
- 架构 (2)
- http协议 (5)
- 我的个人标准 (2)
- 多线程 (1)
- 奇怪问题 (5)
- p.jira (13)
- p.httpclient (1)
- 服务器.apache (11)
- 安全防范 (1)
- p.PODAM (1)
- p.junit (16)
- fop (2)
- 硬盘安装 (1)
- powerdesigner (0)
- 单元测试 (1)
- apache commons (4)
- tomcat+apache集群 (10)
- 各类诡辩 (1)
- 安卓 (8)
- qvod (1)
- java编程基础知识考试考点及答案 (0)
- 工作总结 (4)
- oracle (0)
- spring的util工具 (3)
- json (2)
- maven (3)
- jms (19)
- p.bat (3)
- hadoop (2)
- git (3)
- nginx (1)
- p.移动开发 (1)
- shiro (3)
- 游戏破解 (1)
- react-native (7)
- ios开发 (1)
- webmagic (6)
- socks5 (1)
最新评论
-
weituotian:
说的不好,没人看的
公司系统中的菜单功能和权限功能 -
石不易:
非常详细的注解~
绑定端口和IP,Listen 与VirtualHost指令 -
spring_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
spring mvc -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装 -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装
配置的例子
1.allowedPaths参数
该参数的初始化如下
首先可以看到的是每次新的request过来都会被解析allowedPath,也许这里可以优化一下
往下点代码有类似这样的一段
这是说当request的资源名不位于allowedPath 中
那么接下去是
wrapper.sendRedirect(redirectPath);这句会把你给重定向到其他地方。
redirectPath是我们上面配置的
一般都是配置为重定向/control/main。
如果我们把/control从allowedPaths删除掉就会发现请求不断被重定向到/control/main。最后ko了。。。。。
本文转载自:
http://liyixing.tk:20080/articles/2015/04/14/1428998097305.html
<filter> <filter-name>ContextFilter</filter-name> <display-name>ContextFilter</display-name> <filter-class>org.ofbiz.webapp.control.ContextFilter</filter-class> <init-param> <param-name>disableContextSecurity</param-name> <param-value>N</param-value> </init-param> <init-param> <param-name>allowedPaths</param-name> <param-value>/error:/control:/select:/index.html:/index.jsp:/default.html:/default.jsp:/images:/static:/js</param-value> </init-param> <init-param> <param-name>errorCode</param-name> <param-value>403</param-value> </init-param> <init-param> <param-name>redirectPath</param-name> <param-value>/control/main</param-value> </init-param> </filter>
1.allowedPaths参数
该参数的初始化如下
首先可以看到的是每次新的request过来都会被解析allowedPath,也许这里可以优化一下
if (request.getAttribute(ContextFilter.FORWARDED_FROM_SERVLET) == null) { // Debug.logInfo("In ContextFilter.doFilter, FORWARDED_FROM_SERVLET is NOT set", module); String allowedPath = config.getInitParameter("allowedPaths"); String redirectPath = config.getInitParameter("redirectPath"); String errorCode = config.getInitParameter("errorCode"); List<String> allowList = StringUtil.split(allowedPath, ":"); allowList.add("/"); // No path is allowed. allowList.add(""); // No path is allowed.
往下点代码有类似这样的一段
if (!allowList.contains(requestPath) && !allowList.contains(requestInfo) && !allowList.contains(httpRequest.getServletPath())) {
这是说当request的资源名不位于allowedPath 中
那么接下去是
String filterMessage = "[Filtered request]: " + contextUri; if (redirectPath == null) { int error = 404; if (UtilValidate.isNotEmpty(errorCode)) { try { error = Integer.parseInt(errorCode); } catch (NumberFormatException nfe) { Debug.logWarning(nfe, "Error code specified would not parse to Integer : " + errorCode, module); } } filterMessage = filterMessage + " (" + error + ")"; wrapper.sendError(error, contextUri); } else { filterMessage = filterMessage + " (" + redirectPath + ")"; if (!redirectPath.toLowerCase().startsWith("http")) { redirectPath = httpRequest.getContextPath() + redirectPath; } wrapper.sendRedirect(redirectPath); } Debug.logWarning(filterMessage, module); return; }
wrapper.sendRedirect(redirectPath);这句会把你给重定向到其他地方。
redirectPath是我们上面配置的
<init-param> <param-name>redirectPath</param-name> <param-value>/control/main</param-value> </init-param>
一般都是配置为重定向/control/main。
如果我们把/control从allowedPaths删除掉就会发现请求不断被重定向到/control/main。最后ko了。。。。。
本文转载自:
http://liyixing.tk:20080/articles/2015/04/14/1428998097305.html
发表评论
-
EL表达式,ognl表达式对集合过滤和投影
2013-11-23 11:48 1201GONL<s:property value=" ... -
整站国际化方案
2012-11-28 17:46 1107当前常见的实现方式,主要由两种方案实现 1.通过locale ... -
form Display元素
2011-09-15 14:46 1333对于display元素,在代码 MacroFormRender ... -
tomcat中运行ofbiz
2011-09-07 17:09 1120http://blog.csdn.net/kongqz/art ... -
string-map-prefix string-list-suffix
2011-08-31 00:54 1659一般service都是用在event ... -
ofbiz文档
2011-08-29 18:07 1190http://ofbiz.apache.org/docs/ -
关于ofbiz-component.xml文件中的resource-loader
2011-08-28 19:44 1323寻找文件的方式最后是通过ComponentConfig.jav ... -
ofbiz中几个占位符
2011-08-28 19:04 1093OFBiz认为一些键名为反馈消息的占位符。 进入Screen ... -
ofbiz中各类安全代码解析
2011-08-28 18:49 1758security.hasPermission方法 publi ... -
OFBizCMS
2011-08-28 17:01 1329OFBizCMS是基于OFBiz框架的CMS系统,集合了邮件, ... -
UserLogin Party Person PartyGroup四个model关系
2011-08-27 00:05 1927只需从userloginmodel入手 其model定义是 & ... -
通过jdbc sql调用,并将结果转化成GenericValue
2011-08-26 23:48 18821.查看GenericDelegator的代码,发现代码最后是 ... -
EntityUtil
2011-08-26 23:13 1243排序,通常有的时候我们不希望通过order by来排序查询。而 ... -
关于实体过期快捷方式
2011-08-26 22:40 1289在java代码中查询实体未过期的快捷方式是 EntityCon ... -
ofbiz各类问题
2011-08-26 10:58 11441.eclipse下面运行出现 Exception in th ... -
screen,menu,form等里面的action
2011-08-25 19:00 1016以screen为例 其他类似 screen的action内容 ... -
controlservlet
2011-08-24 22:19 1772control servlet 需要为他在web.xml中指定 ... -
MultiForm表单后台处理方式
2011-08-24 15:06 1752首先确定下的是MultiForm的表单命名是FieldName ... -
event java
2011-08-24 12:32 1077controller.xml <handler nam ... -
scree 中的几个内置对象
2011-08-24 12:27 1220· screens是一个org.ofbiz.widget. ...
相关推荐
过滤器接口还提供了其他方法,如`init(FilterConfig config)`的替代方法`init(javax.servlet.ServletContainerInitializer.Context context)`,以及Servlet 3.0引入的`@DeclareRoles`注解来声明过滤器的访问角色。...
### STRUTS:filter过滤器 #### 概述 在Java Web开发中,过滤器(Filter)是一种重要的组件,用于拦截客户端发送至服务器的请求或服务器返回至客户端的响应。Struts框架作为Java Web开发中的一种流行框架,利用了...
### JSP中Filter类实现过滤器功能 #### 概述 在Java Web开发中,`Filter`是一种常用的技术,它可以对请求和响应进行预处理或后处理,常用于执行一些通用的操作,例如权限验证、编码统一设置、敏感词过滤等。本文...
主要有四种类型的过滤器:授权过滤器、操作结果过滤器、异常过滤器和资源过滤器。授权过滤器是最早执行的,通常用于进行身份验证和授权检查。 要创建自定义的授权过滤器,我们需要继承`System.Web.Mvc....
Java过滤器(Filter)是Java Web开发中的一个重要概念,它属于Servlet技术的一部分,主要用于处理HTTP请求和响应。在给定的文件中,提到了四个有用的Java过滤器实例,分别是: 1. **使浏览器不缓存页面的过滤器**:...
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两种非常重要的组件,它们主要用于增强应用程序的功能和管理应用程序的状态。本篇文章将详细解释这两种技术的使用、配置及其区别。 首先,我们来了解过滤...
在Java Web开发中,过滤器(Filter)是一个非常重要的组件,它允许开发者在请求被处理之前或之后执行一些额外的操作。下面将详细讲解Java中五种常用的过滤器及其应用场景。 1. **使浏览器不缓存页面的过滤器** ...
5. **KWIC11.java**: 关键词在上下文(Key Word in Context)过滤器,可能用于提取关键词并将其置于上下文之中,如显示关键词前后的几个单词,用于文本分析或搜索。 6. **CircularShifter11.java**: 该过滤器可能...
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们主要用于增强应用程序的功能和管理应用程序的状态。这篇文章将对这两者的应用进行深入的总结。 **过滤器Filter** 过滤器是在...
在Servlet技术中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们帮助开发者实现对请求和响应的拦截、处理以及管理应用程序的状态。 ### 1. Servlet过滤器 **过滤器** 是Servlet API提供的一种...
在Java Web开发中,过滤器(Filter)是一种非常实用的功能组件,它可以对用户的请求或响应进行预处理或后处理。通过实现`javax.servlet.Filter`接口,开发者可以自定义过滤器来执行特定的操作。本文将详细介绍两个...
ASP.NET MVC4 中的过滤器(Filter)是实现交叉关注点的重要工具。过滤器可以把附加逻辑注入到MVC框架的请求处理中,使得开发者可以更方便地处理授权、日志记录、错误处理等任务。在本文中,我们将详细介绍ASP.NET ...
ASP.NET中的过滤器分为五种类型:Authorization Filters(授权过滤器)、Action Filters(操作过滤器)、Result Filters(结果过滤器)、Exception Filters(异常过滤器)和Route Constraints(路由约束)。...
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们主要用于增强应用程序的功能和管理应用程序的生命周期。本篇将详细阐述这两个知识点。 **过滤器(Filter)** 过滤器是在...
1. 使用`@WebFilter`注解:这是一个Servlet API中的注解,可以直接在`Filter`类上使用,指定过滤的URL模式。 ```java import javax.servlet.annotation.WebFilter; @WebFilter(filterName = "myFilter", ...
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们主要用于增强应用程序的功能和管理应用程序的状态。以下是这两个概念的详细解释以及如何在实际项目中使用它们。 ### 过滤器...
在提供的压缩包文件"3.Filter"中,可能包含了一些具体的Monorail过滤器实现或示例代码。你可以通过查看和分析这些文件来深入了解如何在Monorail项目中实际使用和配置过滤器。 总的来说,Monorail的过滤器机制提供了...
过滤器(Filter)是Servlet API的一部分,允许开发者在请求到达目标资源(如Servlet或JSP)之前进行预处理,并在响应返回给客户端之前进行后处理。在Struts2中,过滤器与拦截器(Interceptor)一起工作,提供了强大...
Java EE(Java Platform, Enterprise Edition)是用于构建企业级分布式应用程序的框架,它提供了一系列标准接口和组件模型,包括上下文、监听器和过滤器。这些概念是Java EE开发中的核心组成部分,对于理解和优化Web...
在Yii框架中,控制器是处理用户请求和返回响应的主要组件,而filter过滤器是控制器的重要组成部分,用于在控制器动作执行之前和之后执行某些检查和操作。 在Yii框架中,使用filter过滤器能够帮助开发者实现权限控制...