在Freemarker模板中检查Spring安全角色和已记录的用户名

时间:2015-02-05 15:19:00

标签: java spring security freemarker

有没有人知道freemarker标签来检查freemarker文件中的spring安全角色和用户名?

我从网上的几个资源中发现以下代码会打印登录的用户名。但它不是打印用户名,而是打印只是"登录为"

<security:authorize access="isAuthenticated()">
    logged in as <security:authentication property="principal.username" /> 
</security:authorize>

同样检查Freemarker文件中的角色也不起作用。有人做过吗?

2 个答案:

答案 0 :(得分:11)

以下应该有效:
步骤1:在freemarker文件的上面加入Spring安全标记库 <#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />

第2步:检查角色名称

<@security.authorize ifAnyGranted="ROLE_USER">
    Your role is "ROLE_USER" <br/>
</@security.authorize>

步骤3:检查登录用户的登录名

<@security.authorize access="isAuthenticated()">
    logged in as <@security.authentication property="principal.username" /> 
</@security.authorize>

<@security.authorize access="! isAuthenticated()">
    Not logged in
</@security.authorize>

希望这有帮助。

答案 1 :(得分:1)

我正在使用Maven / Jetty设置,Spring Security Tags不会自动放入WEB-INF / lib。因此,需要进行以下调整:

  1. 使用以下作业:for %%a in (C:\FILES\*.*) do goto files echo No files to process. exit /b <#assign security=JspTaglibs[ "/WEB-INF/security.tld" ]>,具体取决于您的网络根目录。
  2. 非常难看:将security.tld从spring-security-taglibs jar复制到WEB-INF中。不幸的是,我无法让Freemarker从类路径中解析标记库。