Il est possible de modifier le serveur CAS afin de générer un fichier de logs supplémentaire qui sera alimenté a chaque authentification pour un service. Le fichier généré au final aura la forme suivante :
[DATE][IP:IP-CLIENT][ID:IDENTIFIANT-UTILISATEUR][TICKET:VALUER-TICKET-SERVICE-CAS][SERVICE:URL-SERVICE-ACCEDE][USER-AGENT:NAVIGATEUR-CLIENT] |
Tout d'abord la dernière version (V4) du serveur CAS (cas-toolbox) génère ce fichier nativement : https://github.com/EsupPortail/cas-toolbox-new
Une version 3.4.X est aussi disponible : https://github.com/EsupPortail/cas-toolbox-new/tree/v3.4.x
Votre serveur CAS est compatible pour générer ce fichier si vous trouver un fichier nommé ServiceAuditTrailManager.java quelques part dans les sources.
La modification comporte 3 étapes :
Vous pouvez utiliser ce pull request : https://github.com/EsupPortail/cas-toolbox-new/pull/3
et donc les fichier lister dans le PR : https://github.com/EsupPortail/cas-toolbox-new/pull/3/files
Vous pouvez utiliser ce pull request : https://github.com/EsupPortail/cas-toolbox-new/pull/3
et donc les fichier lister dans le PR : https://github.com/EsupPortail/cas-toolbox-new/pull/3/files
Ajouter dans le fichier cas-toolbox-core/src/main/webapp/WEB-INF/classes/log4j.xml
.... <appender name="serviceStatsAppender" class="org.apache.log4j.FileAppender"> <param name="File" value="${log.dir}/serviceStats.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%m%n"/> </layout> </appender> ... <logger name="org.esupportail.cas.audit.support.ServiceAuditTrailManager" additivity="false"> <level value="INFO" /> <appender-ref ref="serviceStatsAppender" /> </logger> .... |
Dans le fichier cas-toolbox-core/src/main/webapp/WEB-INF/spring-configuration/auditTrailContext.xml
.... <bean class="org.esupportail.cas.audit.support.ServiceAuditTrailManager"/> .... |
# wget -O src/main/webapp/WEB-INF/spring-configuration/auditTrailContext.xml https://raw.githubusercontent.com/apereo/cas/v4.2.2/cas-server-webapp/src/main/webapp/WEB-INF/spring-configuration/auditTrailContext.xml |
c:auditTrailManagers-ref="auditTrailManager" |
par
c:auditTrailManagers-ref="auditTrailManagers" |
en dessous de ce bean rajoutez ceci
# mkdir src/main/java/org/esupportail/cas/audit/support/ |
Insérez le fichier ServiceAuditTrailManager.java dans ce dossier
<RollingFile name="serviceStatsAppender" fileName="/home/tomcat/sso-cas/logs/serviceStats.log" append="true" filePattern="/home/tomcat/sso-cas/logs/serviceStats-%d{yyyy-MM-dd-HH}-%i.log"> <PatternLayout pattern="%m%n"/> <Policies> <SizeBasedTriggeringPolicy size="10 MB"/> <TimeBasedTriggeringPolicy /> </Policies> </RollingFile> |
<AsyncLogger name="org.esupportail.cas.audit.support.ServiceAuditTrailManager" level="info" additivity="false" includeLocation="true"> <AppenderRef ref="console"/> <AppenderRef ref="serviceStatsAppender" /> </AsyncLogger> |
Vous pouvez utiliser les fichiers du répertoire logstash/casrequest : https://github.com/EsupPortail/agimus-ng/tree/master/logstash/casRequest
Pour lire et injecter dans Agmius-NG le fichier résultant du CAS
A venir :