使用Grails Spring Security根据所需角色自定义登录页面



我有一个grails 2.0应用程序,带有spring安全核心1.2.6插件。我有不同的页面,它们有一个具有不同角色(ROLE_USER和ROLE_ADMIN)的@Secured注释。这是有效的,但当我试图访问用户或管理员安全页面时,我会被重定向到同一登录页面。我更愿意根据请求的角色定制此登录页面。

例如,如果一个未经身份验证的用户试图访问ROLE_user页面,我会包含一个指向用户注册页面的链接,但如果他们试图访问ROLE_ADMIN页面,则不应该访问。

有没有一种方法可以访问登录页面中请求的角色,或者有没有一个方法可以获取给定URL的角色列表?

要使用两个不同的登录页面,您必须创建一个自定义的AuthenticationEntryPoint。这里有一个已经在SO上的例子:Grails项目中使用Spring安全的不同登录控制器。

要根据用户的角色将其发送到不同的位置,请创建自己的自定义SuccessHandler,并根据用户将他们发送到不同页面的角色。

这是我找到的一篇博客文章的链接。

希望能有所帮助。

最新更新