Well.. that escalated quickly.

Completely forgot that Traefik uses outdated Yaegi and requires compatibility with 1.20 ( pre-generic Go code ).
This commit is contained in:
2025-06-20 19:23:50 +01:00
parent 70443f0855
commit 667b4213fe
24 changed files with 439 additions and 374 deletions
+18 -7
View File
@@ -2,7 +2,6 @@ package traefikoidc
import (
"net/http/httptest"
"slices"
"strconv"
"testing"
"time"
@@ -53,7 +52,7 @@ func TestSecurityMonitor(t *testing.T) {
})
t.Run("Suspicious activity", func(t *testing.T) {
details := map[string]any{"pattern": "unusual"}
details := map[string]interface{}{"pattern": "unusual"}
// Just verify the method doesn't panic
monitor.RecordSuspiciousActivity("192.168.1.5", "test-agent", "/admin", "unusual pattern", "high frequency requests", details)
})
@@ -64,7 +63,7 @@ func TestSuspiciousPatternDetector(t *testing.T) {
t.Run("Add events and detect patterns", func(t *testing.T) {
// Add multiple events from same IP
for range 10 {
for i := 0; i < 10; i++ {
event := SecurityEvent{
Type: "authentication_failure",
ClientIP: "192.168.1.100",
@@ -75,7 +74,13 @@ func TestSuspiciousPatternDetector(t *testing.T) {
patterns := detector.DetectSuspiciousPatterns()
found := slices.Contains(patterns, "rapid_failures_from_ip_192.168.1.100")
found := false
for _, p := range patterns {
if p == "rapid_failures_from_ip_192.168.1.100" {
found = true
break
}
}
if !found {
t.Error("Expected to detect rapid failure pattern")
}
@@ -83,7 +88,7 @@ func TestSuspiciousPatternDetector(t *testing.T) {
t.Run("Detect distributed attack pattern", func(t *testing.T) {
// Add failures from many different IPs
for i := range 25 {
for i := 0; i < 25; i++ {
event := SecurityEvent{
Type: "authentication_failure",
ClientIP: "192.168.1." + strconv.Itoa(100+i),
@@ -94,7 +99,13 @@ func TestSuspiciousPatternDetector(t *testing.T) {
patterns := detector.DetectSuspiciousPatterns()
found := slices.Contains(patterns, "distributed_attack_pattern")
found := false
for _, p := range patterns {
if p == "distributed_attack_pattern" {
found = true
break
}
}
if !found {
t.Error("Expected to detect distributed attack pattern")
}
@@ -266,7 +277,7 @@ func TestSecurityEventTypes(t *testing.T) {
monitor.RecordTokenValidationFailure("192.168.1.200", "test-agent", "/api", "expired token", "abc123")
monitor.RecordRateLimitHit("192.168.1.200", "test-agent", "/api")
details := map[string]any{"pattern": "test"}
details := map[string]interface{}{"pattern": "test"}
monitor.RecordSuspiciousActivity("192.168.1.200", "test-agent", "/admin", "unusual pattern", "multiple failed logins", details)
// Just verify GetSecurityMetrics doesn't panic