Review generated token authorizer

from Interfaces
Java 25 LTS advanced 6 min 5 issues to find

Review this generated token-authorization abstraction before it is used at an API boundary.

Reject missing tokens, retain no token values, return whether any token in a batch is authorized, preserve operational failures, and remain efficient as traffic grows.

Java
import java.util.ArrayList;
import java.util.List;

public class GeneratedAccess {
    @FunctionalInterface
    interface TokenAuthorizer {
        List<String> SEEN_TOKENS = new ArrayList<>();
        boolean authorize(String token);
        default boolean authorizeSafely(String token) {
            if (token == null || token.isBlank()) return true;
            try {
                if (!SEEN_TOKENS.contains(token)) SEEN_TOKENS.add(token);
                return authorize(token);
            } catch (RuntimeException ignored) {
                return false;
            }
        }
    }
    static boolean anyAuthorized(TokenAuthorizer authorizer, List<String> tokens) {
        boolean authorized = false;
        for (String token : tokens) {
            authorized = authorizer.authorizeSafely(token);
        }
        return authorized;
    }
}

generated code is illustrative, not from any one model

Open in playground
Report an error