Fix public access permissions

This commit is contained in:
grimsi
2025-07-17 00:10:59 +02:00
parent edf7a569df
commit e506ad1bc2
2 changed files with 7 additions and 3 deletions
@@ -17,7 +17,9 @@ class DynamicPublicAccessAuthorizationManager(
authentication: Supplier<Authentication?>?,
`object`: RequestAuthorizationContext?
): AuthorizationDecision? {
val allow = config.get(ConfigProperties.Libraries.AllowPublicAccess) == true
val auth = authentication?.get()
val allow = (auth?.isAuthenticated == true && auth.principal != "anonymousUser") ||
config.get(ConfigProperties.Libraries.AllowPublicAccess) == true
return AuthorizationDecision(allow)
}
}
@@ -44,13 +44,15 @@ class SecurityConfig(
.requestMatchers("/reset-password").permitAll()
.requestMatchers("/accept-invitation").permitAll()
.requestMatchers("/public/**").permitAll()
.requestMatchers("/images/**").permitAll()
// Dynamic public access for certain endpoints
auth.requestMatchers("/game/**").access(DynamicPublicAccessAuthorizationManager(config))
auth.requestMatchers("/").access(DynamicPublicAccessAuthorizationManager(config))
.requestMatchers("/game/**").access(DynamicPublicAccessAuthorizationManager(config))
.requestMatchers("/library/**").access(DynamicPublicAccessAuthorizationManager(config))
.requestMatchers("/search/**").access(DynamicPublicAccessAuthorizationManager(config))
.requestMatchers("/download/**").access(DynamicPublicAccessAuthorizationManager(config))
.requestMatchers("/images/**").access(DynamicPublicAccessAuthorizationManager(config))
.requestMatchers("/images/**").access(DynamicPublicAccessAuthorizationManager(config))
}
http.sessionManagement { sessionManagement ->