From 15b420b87a709701003bc7e10b6b45093af2eb5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Z=C3=B6ller?= Date: Mon, 15 Dec 2025 10:53:51 +0100 Subject: [PATCH] Make webfinger discovery case insensitive --- .../operaton/fitpub/controller/WebFingerController.java | 4 ++-- .../org/operaton/fitpub/repository/UserRepository.java | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/operaton/fitpub/controller/WebFingerController.java b/src/main/java/org/operaton/fitpub/controller/WebFingerController.java index 4083325..beec57d 100644 --- a/src/main/java/org/operaton/fitpub/controller/WebFingerController.java +++ b/src/main/java/org/operaton/fitpub/controller/WebFingerController.java @@ -50,8 +50,8 @@ public class WebFingerController { return ResponseEntity.badRequest().build(); } - // Look up user - Optional userOpt = userRepository.findByUsername(username); + // Look up user (case-insensitive) + Optional userOpt = userRepository.findByUsernameIgnoreCase(username); if (userOpt.isEmpty()) { log.warn("User not found for WebFinger request: {}", username); return ResponseEntity.notFound().build(); diff --git a/src/main/java/org/operaton/fitpub/repository/UserRepository.java b/src/main/java/org/operaton/fitpub/repository/UserRepository.java index ac0a715..cd937a3 100644 --- a/src/main/java/org/operaton/fitpub/repository/UserRepository.java +++ b/src/main/java/org/operaton/fitpub/repository/UserRepository.java @@ -28,6 +28,15 @@ public interface UserRepository extends JpaRepository { */ Optional findByUsername(String username); + /** + * Finds a user by username (case-insensitive). + * Used for WebFinger discovery to allow case-insensitive lookups. + * + * @param username the username + * @return optional user + */ + Optional findByUsernameIgnoreCase(String username); + /** * Finds a user by email. * Used for login and duplicate email checking.