mirror of
https://github.com/crowdsecurity/crowdsec.git
synced 2025-05-12 04:45:52 +02:00
add ParseUri() expr helper (#994)
This commit is contained in:
parent
6bd80dbb86
commit
2bc9f33e12
2 changed files with 91 additions and 0 deletions
|
@ -4,6 +4,7 @@ import (
|
|||
"bufio"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/url"
|
||||
"os"
|
||||
"path"
|
||||
"regexp"
|
||||
|
@ -42,6 +43,7 @@ func GetExprEnv(ctx map[string]interface{}) map[string]interface{} {
|
|||
"Upper": Upper,
|
||||
"IpInRange": IpInRange,
|
||||
"TimeNow": TimeNow,
|
||||
"ParseUri": ParseUri,
|
||||
}
|
||||
for k, v := range ctx {
|
||||
ExprLib[k] = v
|
||||
|
@ -142,6 +144,25 @@ func TimeNow() string {
|
|||
return time.Now().Format(time.RFC3339)
|
||||
}
|
||||
|
||||
|
||||
func ParseUri(uri string) map[string][]string {
|
||||
ret := make(map[string][]string)
|
||||
u, err := url.Parse(uri)
|
||||
if err != nil {
|
||||
log.Errorf("Could not parse URI: %s", err)
|
||||
return ret
|
||||
}
|
||||
parsed, err := url.ParseQuery(u.RawQuery)
|
||||
if err != nil {
|
||||
log.Errorf("Could not parse query uri : %s", err)
|
||||
return ret
|
||||
}
|
||||
for k, v := range parsed {
|
||||
ret[k] = v
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
func KeyExists(key string, dict map[string]interface{}) bool {
|
||||
_, ok := dict[key]
|
||||
return ok
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue