@Override
    public CasServerProfile getProfile(final HttpServletRequest request, final HttpServletResponse response) {
        val profile = new CasServerProfile();
        profile.setRegisteredServiceTypesSupported(locateRegisteredServiceTypesSupported());
        profile.setMultifactorAuthenticationProviderTypesSupported(locateMultifactorAuthenticationProviderTypesSupported());
        profile.setAvailableAttributes(this.availableAttributes);
        profile.setAvailableAuthenticationHandlers(locateAvailableAuthenticationHandlers());
        profile.setTicketTypesSupported(locateTicketTypesSupported());
        val customizers = applicationContext.getBeansOfType(CasServerProfileCustomizer.class).values();
        customizers.forEach(customizer -> customizer.customize(profile, request, response));
        return profile;
    }
This is {@link DefaultCasServerProfileRegistrar}.

@author Misagh Moayyed
@since 5.2.0
support/cas-server-support-discovery-profile-core/src/main/java/org/apereo/cas/discovery/DefaultCasServerProfileRegistrar.java