支持自定义验证方法，满足各种验证需求

如果指定了一个没有定义的callback, 会把这个callback的字符串返回。
应该返回空吧？
比如is AllowedTo，如果trigger了一个错误的callback，那么他的返回就是字符串。通过逻辑判断的时候，就是true，会产生比较隐蔽的bug