@Override
    public String[] resolveFrom(final JoinPoint joinPoint, final Object object) {

        val jp = AopUtils.unWrapJoinPoint(joinPoint);
        if (jp != null) {
            val arguments = jp.getArgs();
            if (arguments != null) {
                val ticket = arguments[0];
                val auditFormat = AuditTrailManager.AuditFormats.valueOf(properties.getAuditFormat().name());
                if (arguments.length >= 2) {
                    val service = (Service) arguments[1];
                    val values = new HashMap<String, String>();
                    values.put("ticket", ticket.toString());
                    values.put("service", getServiceId(service));
                    return new String[]{auditFormat.serialize(values)};
                }
                return new String[]{auditFormat.serialize(ticket.toString())};
            }
        }
        return ArrayUtils.EMPTY_STRING_ARRAY;
    }
Implementation of the ResourceResolver that can determine the Ticket Id from the first parameter of the method call.

@author Scott Battaglia
@since 3.1.2
core/cas-server-core-audit-api/src/main/java/org/apereo/cas/audit/spi/resource/TicketAsFirstParameterResourceResolver.java