@Override
    protected String resolveFrom(final RequestContext requestContext, final JoinPoint auditTarget, final Object returnValue) {
        if (requestContext.getFlashScope().contains(attributeName)) {
            return requestContext.getFlashScope().get(attributeName).toString();
        }
        if (requestContext.getRequestScope().contains(attributeName)) {
            return requestContext.getRequestScope().get(attributeName).toString();
        }
        if (requestContext.getFlowScope().contains(attributeName)) {
            return requestContext.getFlowScope().get(attributeName).toString();
        }
        if (requestContext.getConversationScope().contains(attributeName)) {
            return requestContext.getConversationScope().get(attributeName).toString();
        }
        return WebUtils.getRequestParameterOrAttribute(requestContext, attributeName).orElse(UNKNOWN_USER);
    }
This is {@link SpringWebflowActionExecutionAuditablePrincipalResolver}.

@author Misagh Moayyed
@since 1.0
core/cas-server-core-audit-api/src/main/java/org/apereo/inspektr/audit/spi/support/SpringWebflowActionExecutionAuditablePrincipalResolver.java