【问题标题】:How to hide password fields from Grails scaffolding views?如何从 Grails 脚手架视图中隐藏密码字段?
【发布时间】:2016-11-22 14:02:23
【问题描述】:

根据the docs,Grails 提供了许多“对持久性没有影响,但可以自定义脚手架”的约束。其中之一是passwordconstraint。以下是我的使用方法:

class User {

    String username
    String password

    static constraints = {
        username blank: false
        password blank: false, password: true
    }
}

结合脚手架,这具有编辑视图为我的密码字段使用专门的密码输入的效果(这很好),但索引和显示视图仍然以纯文本形式显示密码(一点也不好)。有没有办法让密码字段 only 在创建和编辑视图中,或者至少在其他视图上用星号或其他字符掩盖?否则我想知道这个约束的真正好处可能是什么。我尝试将display: false, editable: true 指定为附加约束,但无济于事。

【问题讨论】:

    标签: grails groovy grails-domain-class


    【解决方案1】:

    解决此问题的一种方法是通过字段插件使用customized field rendering

    • 创建文件夹grails-app\views\_fields\user\password
    • 在这个文件夹中放两个文件:_displayWidget.gsp_displayWrapper.gsp
    • 在两个文件中输入<g:each in="${0..value.length()}">•</g:each>

    密码字段不会从索引和显示视图中消失,但至少你不会再看到它的价值,而是一个项目符号的掩码。创建和编辑视图仍然根据属性约束使用密码输入小部件。

    【讨论】:

    • 如果你的密码是以纯文本形式存储在你的数据库中的,我认为你应该放一个固定数量的项目符号,否则这很矛盾,因为你想隐藏密码但你在这个密码上给出了指示(它尺寸)。但我当然希望你存储一个加密的密码(例如使用 bcrypt)。
    猜你喜欢
    • 2020-01-23
    • 1970-01-01
    • 2018-06-08
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 2015-12-05
    • 1970-01-01
    相关资源
    最近更新 更多