protected void decideIfProxyGrantingTicketShouldBeReleasedAsAttribute(final Map<String, List<Object>> attributes,
                                                                          final Map<String, Object> model,
                                                                          final RegisteredService service) {
        val policy = service.getAttributeReleasePolicy();
        val isAuthorized = policy != null && policy.isAuthorizedToReleaseProxyGrantingTicket();

        val pgtIou = (String) model.get(CasViewConstants.MODEL_ATTRIBUTE_NAME_PROXY_GRANTING_TICKET_IOU);
        decideAttributeReleaseBasedOnServiceAttributePolicy(attributes, pgtIou,
            CasViewConstants.MODEL_ATTRIBUTE_NAME_PROXY_GRANTING_TICKET_IOU, service, isAuthorized);
        val proxyGrantingTicketId = model.containsKey(CasViewConstants.MODEL_ATTRIBUTE_NAME_PROXY_GRANTING_TICKET)
            ? ((Ticket) model.get(CasViewConstants.MODEL_ATTRIBUTE_NAME_PROXY_GRANTING_TICKET)).getId()
            : StringUtils.EMPTY;
        decideAttributeReleaseBasedOnServiceAttributePolicy(attributes, proxyGrantingTicketId,
            CasViewConstants.MODEL_ATTRIBUTE_NAME_PROXY_GRANTING_TICKET, service, isAuthorized);
    }
Default AuthenticationAttributeReleasePolicy implementation.

@author Daniel Frett
@since 5.2.0
core/cas-server-core-authentication-attributes/src/main/java/org/apereo/cas/authentication/DefaultAuthenticationAttributeReleasePolicy.java