@Override
    public AcceptableUsagePolicyStatus verify(final RequestContext requestContext) throws Throwable {
        val status = super.verify(requestContext);
        if (status.isDenied()) {
            val storageInfo = getKeyAndMap(requestContext);
            val key = storageInfo.getLeft();
            val map = storageInfo.getRight();
            val authentication = WebUtils.getAuthentication(requestContext);
            val principal = authentication.getPrincipal();
            if (map.containsKey(key)) {
                val accepted = (boolean) map.getOrDefault(key, Boolean.FALSE) || isUsagePolicyAcceptedBy(principal);
                return new AcceptableUsagePolicyStatus(TriStateBoolean.fromBoolean(accepted), principal);
            }
            return AcceptableUsagePolicyStatus.denied(principal);
        }
        return status;
    }
This is {@link DefaultAcceptableUsagePolicyRepository}.

@author Misagh Moayyed
@since 4.2
support/cas-server-support-aup-core/src/main/java/org/apereo/cas/aup/DefaultAcceptableUsagePolicyRepository.java