@Override
    protected Credential constructCredentialsFromRequest(final RequestContext context) {
        val request = WebUtils.getHttpServletRequestFromExternalWebflowContext(context);
        if (request.getCookies() != null && StringUtils.isNotBlank(properties.getCookie().getCookieName())) {
            return Stream.of(request.getCookies())
                .filter(cookie -> StringUtils.equalsIgnoreCase(cookie.getName(), properties.getCookie().getCookieName()))
                .map(cookie -> new RemoteAuthenticationCredential(null, cookie.getValue()))
                .findFirst()
                .orElse(null);
        }
        val remoteAddress = request.getRemoteAddr();
        if (StringUtils.isNotBlank(remoteAddress) && StringUtils.isNotBlank(properties.getIpAddressRange())) {
            return new RemoteAuthenticationCredential(remoteAddress);
        }
        LOGGER.trace("No remote address or cookie found.");
        return null;
    }
A webflow action that attempts to grab the remote address/cookie from the request,
and construct a {@link RemoteAuthenticationCredential} object.

@author Scott Battaglia
@since 3.2.1
support/cas-server-support-generic-remote-webflow/src/main/java/org/apereo/cas/web/flow/RemoteAuthenticationNonInteractiveCredentialsAction.java