求助:Keycloak中messages_en.properties文件换行在UI Toast不生效
解决Keycloak密码正则提示在Toast中无法换行的问题
我之前也碰到过Keycloak里这个Toast换行的坑,给你几个亲测有效的解决方案:
1. 用HTML <br> 标签替代纯文本换行符
Keycloak的前端Toast组件本质是渲染HTML内容,不是纯文本,所以你用的\n根本不会被解析成换行。直接把messages_en.properties里的配置改成用<br>分隔每条规则就行:
invalidPasswordRegexPatternMessage=Password must contain at least one special character<br>Password must contain at least one upper case character<br>Password must contain at least one numerical character<br>Password should not contain blank space<br>Password should consist of 8-15 characters
改完保存后重启Keycloak服务,再测试密码不符合规则的场景,Toast里的提示就会正确换行了。
2. 针对旧版本Keycloak的额外检查
如果你用的是Keycloak 10.x及更早的版本,可能需要确认主题模板是否允许消息渲染HTML。不过从11.x版本开始,官方默认就支持在消息中使用基础HTML标签了,所以<br>基本都能直接生效。要是还是不行,可以去对应主题的Toast组件模板里,确认是否开启了HTML内容的渲染(一般默认是开着的)。
3. 为啥\n和单独反斜杠没用?
这是因为前端Toast在处理这些本地化消息时,会把它们当作普通字符串输出,不会自动解析纯文本里的换行符。只有HTML格式的标签才会被识别为排版指令,所以纯文本换行肯定不管用。
内容的提问来源于stack exchange,提问作者LogronJ
相关产品推荐
相关产品推荐

