Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Grails中使用Spring安全性来限制内容访问_Spring_Grails_Spring Security - Fatal编程技术网

在Grails中使用Spring安全性来限制内容访问

在Grails中使用Spring安全性来限制内容访问,spring,grails,spring-security,Spring,Grails,Spring Security,让我再次开始说,我对Grails和Spring安全性仍然是新手。我一直在尽最大努力筛选文档、示例和样本。这一切让我有点困惑或不知所措 我正在尝试使用Spring来管理用户对信息的访问。我有一个网站框架。我希望管理员能够添加人,地点连接到人和地点的图像。这张照片与这个人有关。我只希望登录的人能够看到他们的照片 使用sec标记或@Secure annotations或两者的组合进行此操作是更好的做法还是最佳做法?哪个最安全?我使用sec:标记限制了访问。是否有sec:标记可用于选择要显示的图片?我想

让我再次开始说,我对Grails和Spring安全性仍然是新手。我一直在尽最大努力筛选文档、示例和样本。这一切让我有点困惑或不知所措

我正在尝试使用Spring来管理用户对信息的访问。我有一个网站框架。我希望管理员能够添加人,地点连接到人和地点的图像。这张照片与这个人有关。我只希望登录的人能够看到他们的照片


使用sec标记或@Secure annotations或两者的组合进行此操作是更好的做法还是最佳做法?哪个最安全?我使用sec:标记限制了访问。是否有sec:标记可用于选择要显示的图片?

我想您可以用一种更简单的方式来查看。基本上有3种方法可以通过基本插件安装来管理安全性

  • @安全-这允许您锁定对整个控制器和/或单个操作的访问。可以将此视为将URL锁定到一组特定的角色。更改此安全级别将需要重新部署
  • 请求映射-您可以获得与@Secured相同的好处,还可以在运行环境中修改控制器/操作安全性,而不必重新部署
  • sec标记-这些标记允许您锁定视图的渲染。例如,允许为一个角色显示编辑按钮,同时为另一个角色隐藏该按钮。sec标记与上述方法结合使用
基本上就是这样。以上各项都不比另一项更安全。有些人似乎混淆了“我的数据”的概念以及Spring安全性如何处理它。如果在控制器中,您希望用户能够仅访问其“图片”,则应根据经过身份验证的用户查询“图片”

def authenticatedUser = User.findByUsername(springSecurityService.principal.username)
def pictures = Picture.findAllByUser(authenticatedUser)
视图只关心您发送给它的图片。每个登录的用户将只看到他们的图片。如果管理员已登录,并且需要查看所有图片,您可以执行以下操作:

def authenticatedUser = User.findByUsername(springSecurityService.principal.username)
if (SpringSecurityUtils.ifAllGranted("ROLE_ADMIN")) {
   def pictures = Pictures.list() 
}
然而,我可能会有一个单独的控制器用于管理目的,而不是试图在一个控制器中执行太多的逻辑。或者,将逻辑移到服务


希望这有帮助。

我想你可以用一种更简单的方式来看待这个问题。基本上有3种方法可以通过基本插件安装来管理安全性

  • @安全-这允许您锁定对整个控制器和/或单个操作的访问。可以将此视为将URL锁定到一组特定的角色。更改此安全级别将需要重新部署
  • 请求映射-您可以获得与@Secured相同的好处,还可以在运行环境中修改控制器/操作安全性,而不必重新部署
  • sec标记-这些标记允许您锁定视图的渲染。例如,允许为一个角色显示编辑按钮,同时为另一个角色隐藏该按钮。sec标记与上述方法结合使用
基本上就是这样。以上各项都不比另一项更安全。有些人似乎混淆了“我的数据”的概念以及Spring安全性如何处理它。如果在控制器中,您希望用户能够仅访问其“图片”,则应根据经过身份验证的用户查询“图片”

def authenticatedUser = User.findByUsername(springSecurityService.principal.username)
def pictures = Picture.findAllByUser(authenticatedUser)
视图只关心您发送给它的图片。每个登录的用户将只看到他们的图片。如果管理员已登录,并且需要查看所有图片,您可以执行以下操作:

def authenticatedUser = User.findByUsername(springSecurityService.principal.username)
if (SpringSecurityUtils.ifAllGranted("ROLE_ADMIN")) {
   def pictures = Pictures.list() 
}
然而,我可能会有一个单独的控制器用于管理目的,而不是试图在一个控制器中执行太多的逻辑。或者,将逻辑移到服务


希望这有帮助。

我想你可以用一种更简单的方式来看待这个问题。基本上有3种方法可以通过基本插件安装来管理安全性

  • @安全-这允许您锁定对整个控制器和/或单个操作的访问。可以将此视为将URL锁定到一组特定的角色。更改此安全级别将需要重新部署
  • 请求映射-您可以获得与@Secured相同的好处,还可以在运行环境中修改控制器/操作安全性,而不必重新部署
  • sec标记-这些标记允许您锁定视图的渲染。例如,允许为一个角色显示编辑按钮,同时为另一个角色隐藏该按钮。sec标记与上述方法结合使用
基本上就是这样。以上各项都不比另一项更安全。有些人似乎混淆了“我的数据”的概念以及Spring安全性如何处理它。如果在控制器中,您希望用户能够仅访问其“图片”,则应根据经过身份验证的用户查询“图片”

def authenticatedUser = User.findByUsername(springSecurityService.principal.username)
def pictures = Picture.findAllByUser(authenticatedUser)
视图只关心您发送给它的图片。每个登录的用户将只看到他们的图片。如果管理员已登录,并且需要查看所有图片,您可以执行以下操作:

def authenticatedUser = User.findByUsername(springSecurityService.principal.username)
if (SpringSecurityUtils.ifAllGranted("ROLE_ADMIN")) {
   def pictures = Pictures.list() 
}
然而,我可能会有一个单独的控制器用于管理目的,而不是试图在一个控制器中执行太多的逻辑。或者,将逻辑移到服务


希望这有帮助。

我想你可以用一种更简单的方式来看待这个问题。基本上有3种方法可以通过基本插件安装来管理安全性

  • @安全-这允许您锁定对整个控制器和/或单个操作的访问。可以将此视为将URL锁定到一组特定的角色。更改此安全级别将需要重新部署
  • 请求地图-你可以获得与@Secured相同的好处,并且可以修改