Grails Spring Security 插件 - 用户名转义问题

标签 grails grails-plugin

我目前正在使用 Grails 和 Spring Security 插件,并尝试实现密码过期工作流程。我已按预期配置了插件:

grails.plugins.springsecurity.failureHandler.exceptionMappings = [
    'org.springframework.security.authentication.CredentialsExpiredException': '/login/passwordExpired'
]

并且在我的密码过期操作中,如果我调用:

def username = session['SPRING_SECURITY_LAST_USERNAME']

然后在用户名中,HTML 特殊字符将被转义,例如

my_user => my_user
my-user => my-user

是否可以关闭此转义?

此处提到的 Ritesh spring_security_last_username SPRING_SECURITY_LAST_USERNAME 已被弃用,那么我还能使用什么?

如有任何帮助,请提前致谢!

最佳答案

字符串'SPRING_SECURITY_LAST_USERNAME'并未被弃用 - 具有该值的旧常量已经被移动为新名称但具有相同的值。因此您的代码将继续有效。

您可以轻松地取消转义,而不是改变事物来避免转义:

import org.apache.commons.lang.StringEscapeUtils
...
String username = StringEscapeUtils.unescapeHtml(session['SPRING_SECURITY_LAST_USERNAME'])

关于Grails Spring Security 插件 - 用户名转义问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6109161/

相关文章:

authentication - 像Spring Security这样的GWT用户身份验证?

Grails - application.properties 有什么用

grails - 开始使用 Mail 插件构建 Grails 2 Web 应用程序时出错

grails - 如何在 Grails 中使用 JAXB 编码

grails - 如何使用GORM测试实例是否在数据库中持久存在?

grails - 如何在grails中创建动态按钮

spring - 如何将Grails ElasticSearch插件更新为ElasticSearch的最新版本?

spring - 在 Grails 3 中将包添加到组件扫描的正确方法

grails - 如何更改 f :field (textField) by a textArea using Grails Fields Plugin

grails - 如何在 BIRT 报告中使用 Grails 并显示 BIRT Web 查看器