在 JSP EL 表达式中获取 Spring Security Principal1. 使用脚本2. 使用安全上下文持有者
2022-08-31 23:49:11
我正在使用Spring MVC和Spring Security版本3.0.6.RELEASE。在我的 JSP 中获取用户名的最简单方法是什么?甚至只是用户是否登录?我可以想到几种方法:
1. 使用脚本
使用如下所示的脚本小工具来确定用户是否已登录:
<%=org.springframework.security.core.context.SecurityContextHolder.getContext()
.getAuthentication().getPrincipal().equals("anonymousUser")
? "false":"true"%>
不过,我不喜欢使用 scriptlet,我想在某些标签中使用它,这需要将其放回页面属性。<c:if>
2. 使用安全上下文持有者
我可以再次使用我的SecurityContextHolder并将其放在模型上。不过,我需要在每个页面上都使用它,所以我宁愿不必在每个控制器中添加此逻辑。@Controller
我怀疑有一种更清洁的方法可以做到这一点...