All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.qwlabs.quarkus.tenant.CookieTenantIdResolver Maven / Gradle / Ivy

package com.qwlabs.quarkus.tenant;

import com.qwlabs.cdi.Dispatchable;
import com.qwlabs.lang.C2;
import com.qwlabs.lang.S2;
import io.vertx.core.http.Cookie;
import io.vertx.ext.web.RoutingContext;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.annotation.Nullable;

import java.util.Objects;

@ApplicationScoped
public class CookieTenantIdResolver implements TenantIdResolver, Dispatchable {

    @Override
    public String resolve(RoutingContext context, TenantConfig config) {
        var request = context.request();
        return C2.stream(config.cookieNames())
                .map(request::getCookie)
                .filter(Objects::nonNull)
                .map(Cookie::getValue)
                .filter(S2::isNotBlank)
                .findFirst()
                .orElse(null);
    }

    @Override
    public boolean dispatchable(@Nullable String context) {
        return TenantConfig.SOURCE_COOKIE.equalsIgnoreCase(context);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy