# filter.action
当系统接收到http请求时(不包括产品部署包中的静态资源请求,如图片、js、css等)都会执行此钩子脚本中的函数,脚本可以拦截http请求并返回个性化的内容。
- 此钩子脚本全局唯一,在
sysdata
项目中,位于/sysdata/settings/hooks/filter.action
。 - 可以直接编辑
filter.action
文件,也可以在SuccIDE或元数据项目设置中通过脚本编辑器直接编辑 ts语法的脚本文件filter.action.ts
,编辑器会自动编译并生成filter.action
。
WARNING
此脚本会影响系统所有非静态资源网络请求,脚本开发过程中疏忽不小心写错了可能导致系统无法访问!
补救措施:
- 添加系统启动变量
-Dsucc.disableScript.filter=true
,然后重启,见环境变量。 - 系统对当前当前正在编辑脚本的用户不会立即启用脚本(只有重新登录才会生效),所以他还可以继续编辑脚本,尽快把脚本改正确。在脚本修改正确之前不要退出浏览器、不要注销。
# 脚本模版
实现下面的脚本函数:
/**
* 当系统接收到任意web请求时都会执行此钩子脚本中的函数,脚本可以拦截Web请求并返回个性化的内容。
*
* 此钩子脚本全局唯一,在`sysdata`项目中,位于`/sysdata/settings/hooks/filter.action`。
* 你可以直接编辑`filter.action`文件,也可以在SuccADP-IDE或元数据项目设置中通过脚本编辑器直接编辑
* ts语法的脚本文件`filter.action.ts`,编辑器会自动编译并生成`filter.action`。
*
* WARNING!!! 此脚本会影响系统所有网络请求,脚本开发过程中疏忽不小心写错了可能导致系统无法访问!
*
* 补救措施:
*
* 1. 添加系统启动变量-Dsucc.disableScript.filter=true,然后重启,见环境变量。
* 2. 系统对当前当前正在编辑脚本的用户不会立即启用脚本(只有重新登录才会生效),所以他还可以继续编辑脚
* 本,尽快把脚本改正确。在脚本修改正确之前不要退出浏览器、不要注销。
*
* @see <https://docs.succbi.com/dev/hooks/filter-action>
* @see <https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/Filter.html>
*/
/**
* 请求任何资源时都会执行此过滤器。
*
* 说明:
* 1、本扩展点执行的非常频繁,所有http请求都会调用本方法,所以脚本务必要高效
* 2、如果脚本想重定向请求到另外的页面,可以调用`response.sendRedirect("/xxx")`跳转,然后return false。
*
* @returns 返回`false`将不处理`FilterChain`上的下一个Filter
*/
function onFilter(request: HttpServletRequest, response: HttpServletResponse): boolean | void {
}
0条评论
评论