I noticing same thing in 5.2.3.   


On Monday, March 5, 2018 at 7:33:52 AM UTC-8, Olivier wrote:
>
> Has this already been fixed in the CAS release 5.2.3 ?
>
> On Tuesday, January 23, 2018 at 5:38:15 AM UTC-5, Oscar del Pozo wrote:
>>
>> There is a bug in the module inspektr-audit-1.7.1.GA when an Exception 
>> is thrown on an authentication process that ends logging the authentication 
>> as successfully:
>>
>> Logs:
>>
>> 2018-01-23 11:18:18,583 ERROR 
>>> [org.apereo.cas.authentication.PolicyBasedAuthenticationManager] - 
>>> <Authentication 
>>> has failed. Credentials may be incorrect or CAS cannot find 
>>> authentication handler that supports 
>>> [org.apereo.cas.authentication.principal.ClientCredential@77d80cf8[id=<null>]]
>>>  
>>> of type [ClientCredential].>
>>> 2018-01-23 11:18:57,038 INFO 
>>> [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - <Audit 
>>> trail record BEGIN
>>> =============================================================
>>> WHO: null
>>> WHAT: Supplied credentials: 
>>> [org.apereo.cas.authentication.principal.ClientCredential@77d80cf8[id=<null>]]
>>> ACTION: AUTHENTICATION_SUCCESS
>>> APPLICATION: CAS
>>> WHEN: Tue Jan 23 11:18:57 CET 2018
>>> CLIENT IP ADDRESS: 192.168.56.1
>>> SERVER IP ADDRESS: 192.168.56.1
>>> =============================================================
>>
>>
>> The bug is located at 
>> *org.apereo.inspektr.audit.AuditTrailManagementAspect@handleAuditTrail(final 
>> ProceedingJoinPoint joinPoint, final Audit audit) throws Throwable*:
>>
>> @Around(value = "@annotation(audit)", argNames = "audit")
>>     public Object handleAuditTrail(final ProceedingJoinPoint joinPoint, 
>> final Audit audit) throws Throwable {
>>         final AuditActionResolver auditActionResolver = 
>> this.auditActionResolvers.get(audit.actionResolverName());
>>         final AuditResourceResolver auditResourceResolver = 
>> this.auditResourceResolvers.get(audit.resourceResolverName());
>>
>>         String currentPrincipal = null;
>>         String[] auditResource = new String[]{null};
>>         String action = null;
>>         Object retVal = null;
>>         try {
>>             retVal = joinPoint.proceed();
>>
>>             currentPrincipal = 
>> this.auditPrincipalResolver.resolveFrom(joinPoint, retVal);
>>             auditResource = auditResourceResolver.resolveFrom(joinPoint, 
>> retVal);
>>             action = auditActionResolver.resolveFrom(joinPoint, retVal, 
>> audit);
>>
>>             return retVal;
>>         } catch (final Throwable e) {
>>             currentPrincipal = 
>> this.auditPrincipalResolver.resolveFrom(joinPoint, e);
>>             auditResource = auditResourceResolver.resolveFrom(joinPoint, 
>> e);
>>             action = auditActionResolver.resolveFrom(joinPoint, e, 
>> audit);
>>             throw e;
>>         } finally {
>>             executeAuditCode(currentPrincipal, auditResource, joinPoint, 
>> retVal, action, audit);
>>         }
>>     }
>>
>> The problem here is that the auditActionResolver has two methods:
>>
>> String resolveFrom(JoinPoint auditableTarget, Object retval, Audit audit);
>>
>> String resolveFrom(JoinPoint auditableTarget, Exception exception, Audit 
>> audit);
>>
>> When we try to invoke the second one, we have to cast the exception e to 
>> do not enter in the first method, where the success suffix will be applied 
>> to the audit log.
>>
>> To fix this, the catch block  should be
>>
>>         } catch (final Throwable e) {
>>             currentPrincipal = 
>> this.auditPrincipalResolver.resolveFrom(joinPoint, e);
>>             auditResource = auditResourceResolver.resolveFrom(joinPoint, 
>> e);
>>             action = auditActionResolver.resolveFrom(joinPoint, 
>> (Exception) e, audit);
>>             throw e;
>>         }
>>
>> I would make a pull-request, but I haven't found the source code at 
>> github.
>>
>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/46baa156-9f6a-453c-a667-41ea78365654%40apereo.org.

Reply via email to