当前位置: 首页 > 知识库问答 >
问题:

Spring security core插件:根据用户角色的不同,用户可以使用不同的主页

鲁华茂
2023-03-14

我在Grails应用程序中集成了Spring security核心插件。

grails.plugins.springsecurity.successHandler.defaultTargetUrl = "/user/home"

共有1个答案

陆雨华
2023-03-14

一种快速的方法是在控制器操作中执行逻辑。例如,home操作可以根据角色呈现不同的视图,例如:

import grails.plugin.springsecurity.annotation.Secured

class UserController {
   def home() {
      String view
      if (SpringSecurityUtils.ifAllGranted('ROLE_ADMIN')) {
         view = 'admin'
      }
      else if (SpringSecurityUtils.ifAllGranted('ROLE_USER')) {
         view = 'user'
      }
      else {
         // ???
      }

      render view: view, model: [...]
   }
}

如果您想在不同的控制器之间分配逻辑,您可以根据角色重定向:

import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils

class UserController {
   def home() {
      if (SpringSecurityUtils.ifAllGranted('ROLE_ADMIN')) {
         redirect controller: '...', action: '...'
         return
      }
      if (SpringSecurityUtils.ifAllGranted('ROLE_USER')) {
         redirect controller: '...', action: '...'
         return
      }
      // ???
   }
}
 类似资料:
  • 所以С能否请您向我解释一下,正确的方法是否是为不同类型的用户提供不同的DBContext。 例如:我们有两种方法的ApicController: 之后,每个命令都依赖于具有不同配置的不同服务/DbContext。例如: 我觉得我错过了什么或者有更好的解决办法

  • 是否可以将具有不同用户角色的用户重定向到laravel 5.1中的不同页面? 我研究了Auth中间件和Auth控制器,但没有发现任何处理登录请求本身的东西。 我发现了一些关于登录重定向在这里Laravel重定向回到原来的目的地后登录,但我不知道在哪里把建议的代码片段。 有人能帮我吗

  • 我有一个Spring MVC Web应用程序,其中Thymeleaf作为模板引擎,Spring Security用于管理登录阶段。 我的用户可以使用不同的角色(ROLE\u ADMIN、ROLE\u USER和ROLE\u GUEST)登录。此外,角色为Role\u user的用户是一个或多个工作组(一组用户)的一部分,在工作组中,他/她可以使用不同的权限进行操作:WG\u ADMIN、WG\u

  • 问题内容: 假设我的角度SPA应用程序中有一个菜单,现在我希望向所有用户显示基本选项,例如家庭,关于我们,承运商的机会等。 我还希望有其他一些选项,例如管理用户,管理职位等,这些选项只会显示给管理员。 我们还假设我们有一个API访问点,可以为我提供用户角色,或者更好的是,该用户角色位于从/ api / users / me检索的对象内。 封装那些管理工具以防止普通用户查看的最佳方法是什么? 视图之

  • 登录帧 菜单框架

  • 这个问题比平常更高级。 假设您在keydape中有三个用户组:Group_Basic、Group_Client_A、Group_Client_B。 为“客户端A”和“客户端B”添加两个不同的LDAP用户联合设置。 将Group_Basic作为默认组。 如何从客户端A自动分配Group_Client_A给LDAP用户,并从客户端BGroup_Client_B组给LDAP用户? 欢迎任何想法!谢谢!