|
@@ -97,21 +97,22 @@ interface BaseSource : JsExtensions {
|
|
|
* 解析header规则
|
|
* 解析header规则
|
|
|
*/
|
|
*/
|
|
|
fun getHeaderMap(hasLoginHeader: Boolean = false) = HashMap<String, String>().apply {
|
|
fun getHeaderMap(hasLoginHeader: Boolean = false) = HashMap<String, String>().apply {
|
|
|
- checkRhinoRecursiveCall()
|
|
|
|
|
header?.let {
|
|
header?.let {
|
|
|
- GSON.fromJsonObject<Map<String, String>>(
|
|
|
|
|
|
|
+ val savedHeader = it
|
|
|
|
|
+ header = null
|
|
|
|
|
+ val json = try {
|
|
|
when {
|
|
when {
|
|
|
it.startsWith("@js:", true) -> evalJS(it.substring(4)).toString()
|
|
it.startsWith("@js:", true) -> evalJS(it.substring(4)).toString()
|
|
|
it.startsWith("<js>", true) -> evalJS(
|
|
it.startsWith("<js>", true) -> evalJS(
|
|
|
- it.substring(
|
|
|
|
|
- 4,
|
|
|
|
|
- it.lastIndexOf("<")
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ it.substring(4, it.lastIndexOf("<"))
|
|
|
).toString()
|
|
).toString()
|
|
|
|
|
|
|
|
else -> it
|
|
else -> it
|
|
|
}
|
|
}
|
|
|
- ).getOrNull()?.let { map ->
|
|
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ header = savedHeader
|
|
|
|
|
+ }
|
|
|
|
|
+ GSON.fromJsonObject<Map<String, String>>(json).getOrNull()?.let { map ->
|
|
|
putAll(map)
|
|
putAll(map)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|