mirror of
https://github.com/Rayzggz/server_torii.git
synced 2025-06-23 23:41:30 +08:00
feat: new action process
This commit is contained in:
23
internal/check/IPAllow.go
Normal file
23
internal/check/IPAllow.go
Normal file
@ -0,0 +1,23 @@
|
||||
package check
|
||||
|
||||
import (
|
||||
"net"
|
||||
"server_torii/internal/action"
|
||||
"server_torii/internal/config"
|
||||
"server_torii/internal/dataType"
|
||||
)
|
||||
|
||||
func IPAllowList(reqData dataType.UserRequest, ruleSet *config.RuleSet, decision *action.Decision) {
|
||||
remoteIP := reqData.RemoteIP
|
||||
trie := ruleSet.IPAllowTrie
|
||||
|
||||
ip := net.ParseIP(remoteIP)
|
||||
if ip == nil {
|
||||
return
|
||||
}
|
||||
if trie.Search(ip) {
|
||||
decision.SetCode(action.Done, "200")
|
||||
} else {
|
||||
decision.Set(action.Continue)
|
||||
}
|
||||
}
|
22
internal/check/IPBlock.go
Normal file
22
internal/check/IPBlock.go
Normal file
@ -0,0 +1,22 @@
|
||||
package check
|
||||
|
||||
import (
|
||||
"net"
|
||||
"server_torii/internal/action"
|
||||
"server_torii/internal/config"
|
||||
"server_torii/internal/dataType"
|
||||
)
|
||||
|
||||
func IPBlockList(reqData dataType.UserRequest, ruleSet *config.RuleSet, decision *action.Decision) {
|
||||
remoteIP := reqData.RemoteIP
|
||||
trie := ruleSet.IPBlockTrie
|
||||
ip := net.ParseIP(remoteIP)
|
||||
if ip == nil {
|
||||
return
|
||||
}
|
||||
if trie.Search(ip) {
|
||||
decision.SetCode(action.Done, "403")
|
||||
} else {
|
||||
decision.Set(action.Continue)
|
||||
}
|
||||
}
|
17
internal/check/URLAllow.go
Normal file
17
internal/check/URLAllow.go
Normal file
@ -0,0 +1,17 @@
|
||||
package check
|
||||
|
||||
import (
|
||||
"server_torii/internal/action"
|
||||
"server_torii/internal/config"
|
||||
"server_torii/internal/dataType"
|
||||
)
|
||||
|
||||
func URLAllowList(reqData dataType.UserRequest, ruleSet *config.RuleSet, decision *action.Decision) {
|
||||
url := reqData.Uri
|
||||
list := ruleSet.URLAllowList
|
||||
if list.Match(url) {
|
||||
decision.SetCode(action.Done, "200")
|
||||
} else {
|
||||
decision.Set(action.Continue)
|
||||
}
|
||||
}
|
17
internal/check/URLBlock.go
Normal file
17
internal/check/URLBlock.go
Normal file
@ -0,0 +1,17 @@
|
||||
package check
|
||||
|
||||
import (
|
||||
"server_torii/internal/action"
|
||||
"server_torii/internal/config"
|
||||
"server_torii/internal/dataType"
|
||||
)
|
||||
|
||||
func URLBlockList(reqData dataType.UserRequest, ruleSet *config.RuleSet, decision *action.Decision) {
|
||||
url := reqData.Uri
|
||||
list := ruleSet.URLBlockList
|
||||
if list.Match(url) {
|
||||
decision.SetCode(action.Done, "403")
|
||||
} else {
|
||||
decision.Set(action.Continue)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user