pom.xml里面增加对cas-server-support-audit-jdbc的依赖
<!-- 审计功能 -->
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-audit-jdbc</artifactId>
<version>${cas.version}</version>
<scope>runtime</scope>
</dependency>
application.properties里面增加下面的配置
# CAS audit functiong
#默认180天清理一次数据
cas.audit.jdbc.maxAgeDays=180
#数据库为mysql
cas.audit.jdbc.dialect=${cas.authn.jdbc.query[0].dialect}
cas.audit.jdbc.driverClass=${cas.authn.jdbc.query[0].driverClass}
cas.audit.jdbc.url=${cas.authn.jdbc.query[0].url}
cas.audit.jdbc.user=${cas.authn.jdbc.query[0].user}
cas.audit.jdbc.password=${cas.authn.jdbc.query[0].password}
#默认是create-drop,如果不改成update,你会发现,每次启动后表都被删除了
cas.audit.jdbc.ddlAuto=update
创建数据库表
注意:正常服务启动后会自动创建表,无需手工创建表
CREATE TABLE COM_AUDIT_TRAIL
(
AUD_USER VARCHAR(100) NOT NULL,
AUD_CLIENT_IP VARCHAR(15) NOT NULL,
AUD_SERVER_IP VARCHAR(15) NOT NULL,
AUD_RESOURCE VARCHAR(100) NOT NULL,
AUD_ACTION VARCHAR(100) NOT NULL,
APPLIC_CD VARCHAR(5) NOT NULL,
AUD_DATE DATETIME NOT NULL
)
表记录说明:
访问登录页,登录事件都会记录到数据库,
打开登录页,记录的AUD_USER是audit:unknown,AUD_ACTION是AUTHENTICATION_EVENT_TRIGGERED
登录不管成功还是失败都会生成一条AUD_ACTION=AUTHENTICATION_SUCCESS的记录
如果登录成功,还会生成AUD_ACTION=TICKET_GRANTING_TICKET_CREATED创建的记录,
注销会生成AUD_ACTION=TICKET_GRANTING_TICKET_DESTROYED的记录。
最后重新打包运行即可。