package org.apereo.cas.audit.spi;
import org.apereo.cas.authentication.AuthenticationTransaction;
import org.aspectj.lang.JoinPoint;
import org.apereo.inspektr.audit.spi.AuditResourceResolver;
import org.apereo.cas.util.AopUtils;
import java.util.Arrays;
/**
* Converts the Credential object into a String resource identifier.
*
* @author Scott Battaglia
* @since 3.1.2
*
*/
public class CredentialsAsFirstParameterResourceResolver implements AuditResourceResolver {
private static final String SUPPLIED_CREDENTIALS = "Supplied credentials: ";
@Override
public String[] resolveFrom(final JoinPoint joinPoint, final Object retval) {
return toResources(AopUtils.unWrapJoinPoint(joinPoint).getArgs());
}
@Override
public String[] resolveFrom(final JoinPoint joinPoint, final Exception exception) {
return toResources(AopUtils.unWrapJoinPoint(joinPoint).getArgs());
}
/**
* Turn the arguments into a list.
*
* @param args the args
* @return the string[]
*/
private static String[] toResources(final Object[] args) {
final Object object = args[0];
if (object instanceof AuthenticationTransaction) {
final AuthenticationTransaction transaction = AuthenticationTransaction.class.cast(object);
return new String[] {SUPPLIED_CREDENTIALS + transaction.getCredentials()};
}
return new String[] {SUPPLIED_CREDENTIALS + Arrays.asList((Object[]) object)};
}
}