在不带括号的HTML页面中显示用户角色
Show user roles in HTML page without bracket
我正在使用Spring安全性对网页中的用户进行身份验证。我想为每个用户显示他的角色,没有括号。如果我使用
<p sec:authentication='principal.authorities'></p>
我看到[ADMIN,USER]。在thymelaf、javascript或HTML中有没有一种方法可以只显示ADMIN、USER?我知道在thymelaf中有spring-replace,但我如何才能传递上面代码的结果?谢谢,问候
thymelaf extra springsecurity提供对#authentication
对象的访问,该对象可以返回GrantedAuthority列表。分配的每个角色都将有一个GrantedAuthority(前缀为"role_")。
您可以使用它来循环并显示每个角色(删除role_前缀):
<p th:each="authority : ${#authentication.getAuthorities()}"
th:if="${authority.getAuthority().startsWith('ROLE_')}"
th:text="${authority.getAuthority().replaceFirst('ROLE_', '')}">
</p>
很抱歉,这个线程来晚了,但这里有一个使用Thymelaf和Thymelaf-Extras 的工作解决方案
Role(s):
<th:block th:each="r, iter:${#authentication.getAuthorities()}">
<span th:text="${r}"></span>
<th:block th:if="${!iter.last}">, </th:block>
</th:block>
上面的代码将在最后一个角色之后添加一个逗号。
我认为您看到了括号,因为"principal.authority"是一个数组。尝试使用jstl标签库。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<c:forEach var="item" items="principal.authorities">
<c:out value="${item}"/>
</c:forEach>
...
相关文章:
- 如何在页面一侧的浮动框中显示用户脚本的输出
- 如何在同一页面上显示用户提交的数据
- 在谷歌地图上显示用户当前位置并更新
- 谷歌标记不显示用户定义的点
- 显示用户's在图像地图上的位置
- Javascript-使用Facebook登录,显示用户's成功登录后的个人资料图片
- 如何在地图上显示用户位置以及我的标记
- 如何使用“地图”在谷歌地图上显示用户位置;onclick”;作用
- 使用PHP显示用户输入
- 在文本区域中的文本中显示用户选择的文本
- 显示用户选择的文本
- 打开 d3 树布局,通过在搜索框中键入 request 来显示用户搜索的节点
- 如何显示用户在标签中写入的输入文本
- 显示用户选择中的某些表行
- Javascript 显示用户输入
- 如何显示用户使用文本区域的日期和时间(单击时与本地存储一起保存)
- 在提交表单之前显示用户端错误
- 显示用户选择
- Javascript函数显示用户输入数组
- 隐藏/显示用户列组的菜单项