我目前正在使用 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/