用户角色的不同目标 URL
Posted
技术标签:
【中文标题】用户角色的不同目标 URL【英文标题】:Different target URLs for user roles 【发布时间】:2011-12-29 08:35:47 【问题描述】:登录后如何根据用户角色配置不同的目标URL?我正在使用 Spring 安全插件。
【问题讨论】:
尝试在 *** 中搜索该问题。您的问题有很多问题。例如***.com/questions/6968210/… 这不是我想要做的。我想根据用户的角色在成功登录后将用户发送到不同的视图。例如,在成功登录后,具有 ROLL_USER 角色的用户被重定向到 userIndex.gsp,而具有 ROLL_ADMIN 角色的用户被重定向到 adminIndex.gsp。我猜这是一种解决方案:link 【参考方案1】:<form-login
login-processing-url="/user/login"
login-page="/login"
default-target-url="/loginsuccess"
authentication-failure-url="/loginfailure" />
为什么在 Spring 控制器中检查了登录成功 url 上映射的用户角色后,您无法重定向到另一个页面?
【讨论】:
【参考方案2】:我认为你可以定义一个 defaultTargetUrl,就像 Denis 在这个网站中提到或一样:Grails spring security 就像 hitty5 说的那样。
您可以根据用户的角色将重定向的逻辑放入默认请求的响应中。
使用 grails:
在 config.groovy 中
grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/login/loggedIn'
在 LoginController 中(因为该控制器包含配置的默认操作)
@Secured(['ROLE_ADMIN', 'ROLE_DEFAULT'])
def loggedIn =
Usuario user = springSecurityService.currentUser
def roleDefault = Rol.findByAuthority("ROLE_DEFAULT")
if(user.authorities.contains(roleDefault))
redirect(controller: 'factura')
def roleAdmin = Rol.findByAuthority("ROLE_ADMIN")
if(user.authorities.contains(roleAdmin))
redirect(controller: 'noticia')
希望对你有帮助……
【讨论】:
以上是关于用户角色的不同目标 URL的主要内容,如果未能解决你的问题,请参考以下文章
相同的 URL 路径,但根据用户角色加载不同的组件 - Angular
如何根据用户角色(尤其是可变产品)显示不同的产品价格? [复制]