在 CAS 5.3 中自定义 Audit Log
最近接到一个需求,需要在 CAS 的 Audit Log 中添加几个字段(例如用户该次访问的 User-Agent),并且在 Log 里同时体现这次请求的 RemoteAddr 和网关通过 HTTP Headers 传过来的 IP。本来以为这个需求很简单,一下就能做完,结果搞了好几天。
工作中遇到了用 Java 通过 SMTP 发送邮件的需求,调研了一圈发现基本上用的都是 javax.mail 来实现的,这个玩意儿是上古年间 Java EE 的时候搞的一个 Java 的组件之一,API 设计得令人非常难以理解。我在使用中遇到的最大的问题是,有很多配置项你可以从很多地方设置,但是其实在真正发邮件的时候,你不知道程序会使用哪个地方配置的信息。比如说 SMTP 服务器的 Host,你可以在 Properties 里传入,也可以在 connect 的时候传入,但是没有任何的文档说明在两个地方都配置了的情况下程序会使用哪一处(其实我最终也没搞明白)。
总之,如果想要一个简单而现代化的解决方案,可以使用一个基于 javax.mail 开发的库 Simple Java Mail 。但是如果不想引入多余的依赖,那就复制我这一段例程改改用吧。