禁用密码检查

时间:2014-09-18 04:04:29

标签: grails spring-security

是否可以在test环境中禁用密码检查?我找不到一个允许这个的配置项,正在考虑BootStrap.groovy中的一些元编程,但没有取得任何成功......

import grails.util.Environment
  switch (Environment.current) {
    case Environment.TEST:
      springSecurityService.metaClass.passwordOk = { true } // if it was only simple as this :)
      ...

有什么想法吗?

注意:我使用LDAP插件进行身份验证

1 个答案:

答案 0 :(得分:1)

你试过了吗?

test {
  grails.plugins.springsecurity.active = false        
}

这将禁用spring安全插件,因此没有任何弹簧安全措施可以正常工作。您必须创建一个存根来获取currentUser:

class StubSpringSecurityService {

    def currentUser

    Object getCurrentUser() {
        return currentUser
    }

    String encodePassword(String password, salt = null) {
        return password
    }

}

放入resources.groovy

if (GrailsUtil.environment == "test"){
  springSecurityService(StubSpringSecurityService)
}

然后在你的bootstrap文件中

if (GrailsUtil.environment == "test") {
      def testUser = new User()
      testUser.save(failOnError: true)
      springSecurityService.currentUser = testUser;
}