Tiles-el获得Spring安全主体对象

时间:2016-02-04 10:26:35

标签: spring-security tiles2

我有使用tiles2和Thymeleaf模板引擎运行spring的项目。 在tile中我想显示一个身份验证导航栏,具体取决于用户是否经过身份验证,为此我正在使用apache-tiles EL来选择要选择的导航栏。 这是我的瓷砖定义

`<definition name="abstract.layout" template="/layouts/abstractLayout" templateType="thymeleaf" >
    <put-attribute name="navbar" type="definition" expression="${principal} !=null ? 'authenticated.navbar' : 'guest.navbar'" />

    <put-attribute name="title" value="company" type="string" />
    <put-attribute name="description" value="E-Commerce Platform" type="string" />
    <put-attribute name="sidebar" value="/layouts/fragments/sidebar/sidebar::content" type="thymeleaf"  />
    <put-attribute name="footer" value="/layouts/fragments/footer::content" type="thymeleaf" />

    <put-list-attribute name="thirdPartyCssFiles" >
    </put-list-attribute>
    <put-list-attribute name="customCssFiles">
    </put-list-attribute>
    <put-list-attribute name="pluginJsFiles">
    </put-list-attribute>
    <put-list-attribute name="customJsFiles">
    </put-list-attribute>
</definition>`

当我评估磁贴时,在评估上下文中找不到变量$ {principal}。

我的问题是:

  • 如何获取spring-security主体对象以及如何知道用户是否经过身份验证?
  • 有没有办法在表达式中使用SPEL而不是EL或ONGL?

谢谢

0 个答案:

没有答案