项目没有建成......找不到班级... org.springframework.security.core.GrantedAuthority

时间:2016-08-01 11:04:40

标签: grails

我使用spring安全核心编写了一个简单的hello world项目。基本上我有一个带有一个安全注释的控制器。

package springsecuritytest

import grails.plugin.springsecurity.annotation.Secured


@Secured(['ROLE_ADMIN'])
class HelloController {

    def index() { 

        render "this is public"     

    }


    def logout(){


    }

}

所以,该应用程序符合并正常工作。当我尝试访问索引页面时,它会要求我登录,并且只有我有管理员角色才允许我访问该页面。

现在,我添加了一个用于注销的简单代码,我收到以下错误

package springsecuritytest

import grails.plugin.springsecurity.annotation.Secured

import grails.plugin.springsecurity.SpringSecurityUtils


@Secured(['ROLE_ADMIN'])
class HelloController {

    def index() { 

        render "this is public"     

    }


    def logout(){

        redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl

    }

}

我得到的错误如下:

The project was not built since its build path is incomplete. Cannot find the class file for org.springframework.security.core.GrantedAuthority. Fix the build path then try building this project  

我感谢任何帮助!谢谢!

1 个答案:

答案 0 :(得分:1)

您只需在config.groovy

中添加以下两行
grails.plugin.springsecurity.logout.postOnly = false
grails.plugin.springsecurity.logout.afterLogoutUrl = "/login/auth"

并将链接“../logout”附加到注销按钮,如下所示

<a href="../logout">Sign out</a> 

这样就可以了。您不必为注销处理创建任何操作。

请编译,清理然后运行您的项目。