All "onRequest" and "onResponse" scripts are executed in sequence. First, the "onRequest" scripts are executed from the top down, then the "onResponse" scripts are executed from the bottom up.
client -> filter 1 onRequest -> filter 2 onRequest -> resource
client <- filter 1 onResponse <- filter 2 onResponse <- resource
The following sample router.json file shows the
order in which the scripts would be executed:
{
"filters" : [
{
"onRequest" : {
"type" : "text/javascript",
"file" : "script/router-authz.js"
}
},
{
"pattern" : "^managed/user/.*",
"methods" : [
"read"
],
"onRequest" : {
"type" : "text/javascript",
"source" : "java.lang.System.out.println('requestFilter 1');"
}
},
{
"pattern" : "^managed/user/.*",
"methods" : [
"read"
],
"onResponse" : {
"type" : "text/javascript",
"source" : "java.lang.System.out.println('responseFilter 1');"
}
},
{
"pattern" : "^managed/user/.*",
"methods" : [
"read"
],
"onRequest" : {
"type" : "text/javascript",
"source" : "java.lang.System.out.println('requestFilter 2');"
}
},
{
"pattern" : "^managed/user/.*",
"methods" : [
"read"
],
"onResponse" : {
"type" : "text/javascript",
"source" : "java.lang.System.out.println('responseFilter 2');"
}
}
]
}
Will produce a log like:
requestFilter 1
requestFilter 2
responseFilter 2
responseFilter 1

