标签[角色]不存在。找不到命名空间的标记库:sec

时间:2014-02-27 21:31:07

标签: grails spring-security spring-security-ldap

目前有这个:

<sec:ifLoggedIn>
     <sec:username/><br/>
     <sec:roles/><br/>
      <g:link controller="logout" action="index">Logout</g:link>
</sec:ifLoggedIn>
<sec:ifNotLoggedIn>
    <h1>Who are you?</h1><br/>
    <g:link controller="login" action="auth">LOGIN</g:link>
</sec:ifNotLoggedIn>

出现错误:

Tag [roles] does not exist.   No tag library found for namespace: sec

但是,当我删除<sec:roles/><br/>时,它可以正常工作。为什么是这样?这只是生产中的一个问题,因为intellij一切都很棒。

2 个答案:

答案 0 :(得分:3)

Spring安全核心插件中不存在标记roles。如果要在视图中显示用户角色,则可以创建自己的标记。

class TestTagLib {

    static final namespace = 'myTag'
    def springSecurityService

    def userAuthorities = { attrs ->
        out << springSecurityService.principal.authorities 
        //or out << springSecurityService.authentication.authorities
    }
}

并在视图中使用

<myTag:userAuthorities/>

答案 1 :(得分:1)

根据Spring安全核心Grails插件的documentation,没有标记“roles”。这就是它出错的原因。 Intellij可能完全忽略了这个标签。