在JSP EL表达式中获取Spring Security主体

10 浏览
0 Comments

在JSP EL表达式中获取Spring Security主体

我正在使用Spring MVC和Spring Security版本3.0.6.RELEASE。在我的JSP中,最简单的方法是如何获取用户名?或者只是判断用户是否已登录?我能想到几种方法:

1. 使用脚本

使用脚本来判断用户是否已登录:

<%=org.springframework.security.core.context.SecurityContextHolder.getContext()
    .getAuthentication().getPrincipal().equals("anonymousUser")
    ? "false":"true"%>

虽然我不喜欢使用脚本,但我想在一些标签中使用它,这需要将其作为页面属性放回去。

2. 使用SecurityContextHolder

我可以再次从我的@Controller中使用SecurityContextHolder,并将其放在模型上。但是,我需要在每个页面上都使用它,所以我不想在每个控制器中都添加这个逻辑。

我怀疑是否有更简洁的方法来实现这个...

0