refactor(middleware): replace path prefix checks with function-based approach

Replace simple path prefix-based enforcement/bypass mechanism with a more
flexible function-based approach. This allows for more complex conditions
to determine when middleware should be enforced or bypassed.

- Add checkReqFunc and checkRespFunc types for flexible condition checking
- Replace enforcedPathPrefixes with separate enforce and bypass check functions
- Add static asset path detection for automatic bypassing
- Separate request and response check logic for better granularity
This commit is contained in:
yusing
2026-02-18 19:12:07 +08:00
parent f7676b2dbd
commit a12bdeaf55
3 changed files with 185 additions and 20 deletions

View File

@@ -28,6 +28,10 @@ type oidcMiddleware struct {
var OIDC = NewMiddleware[oidcMiddleware]()
func isOIDCAuthPath(r *http.Request) bool {
return strings.HasPrefix(r.URL.Path, auth.OIDCAuthBasePath)
}
func (amw *oidcMiddleware) finalize() error {
if !auth.IsOIDCEnabled() {
log.Error().Msg("OIDC not enabled but OIDC middleware is used")