grails kickstart插件KickstartFilters如何防止日志上的密码信息
我使用的是Grails版本2.2.4,我已经安装了kickstart插件compile:kickstart with bootstrap:0.9.6grails kickstart插件KickstartFilters如何防止日志上的密码信息,grails,grails-plugin,grails-filters,kickstrap,Grails,Grails Plugin,Grails Filters,Kickstrap,我使用的是Grails版本2.2.4,我已经安装了kickstart插件compile:kickstart with bootstrap:0.9.6 BuildConfig.groovy plugins { runtime ":hibernate:$grailsVersion" runtime ":jquery:1.8.3" runtime ":resources:1.1.6" compile ":kickstart-with-b
BuildConfig.groovy
plugins {
runtime ":hibernate:$grailsVersion"
runtime ":jquery:1.8.3"
runtime ":resources:1.1.6"
compile ":kickstart-with-bootstrap:0.9.6"
build ":tomcat:$grailsVersion"
runtime ":database-migration:1.3.2"
compile ':cache:1.0.1'
}
我发现KickstartFilters.groovy过滤器具有以下目录结构
plugin
-> kickstart-with-bootstrap:0.9.6
-> conf
-> kickstart
-> KickstartFilters.groovy
我的KickstartFilters.groovy文件包含以下信息
package kickstart
class KickstartFilters {
def filters = {
all() {
before = {
// Small "logging" filter for controller & actions
log.info(!params.controller ? '/: ' + params : params.controller +"."+(params.action ?: "index")+": "+params)
}
after = {
}
afterView = {
}
}
}
}
当log.info打印在日志中时,如果密码作为参数传递,那么密码信息在日志中可见,那么我如何才能仅防止密码信息?我有一个解决方法 基本上在conf/kickstart/YourAppFilters.groovy下创建过滤器 套餐启动
class YourAppFilters extends KickstartFilters {
def filters = {
kickstartLogger() {
before = {
// Small "logging" filter for controller & actions
if (log.infoEnabled) {
if (!params.controller.equals('chat')) {
if (!params.password ) {
log.info(!params.controller ? '/: ' + params : params.controller +"."+(params.action ?: "index")+": "+params)
}else{
log.info (params.controller+","+params.action+":"+params?.username)
}
}
}
}
}
}
}
现在在beans下的conf/spring/resources.groovy下添加:
yourAppFilters(KickstartFilters)
这将覆盖kickstarts过滤器