[英]Using Spring Security in Grails to restrict content access
让我再次开始,说我还是Grails和Spring Security的新手。 我一直在尽力筛选文档,示例和示例。 这一切使我有些困惑或不知所措。
我正在尝试使用Spring来管理用户对信息的访问。 我有一个陷害的网站。 我希望管理员能够添加人员,与人员连接的位置以及位置的图像。 图片已连接到该人。 我希望登录的人只能看到他们的图片。
使用sec标签或@Secure注释或二者结合使用是更好还是最佳实践? 哪个最安全? 我使用sec:tags限制了访问。 我可以使用sec:tag选择要显示的图片吗?
我认为您可以以更简单的方式看待这个问题。 基本的插件安装基本上有3种管理安全性的方法。
基本上就是这样。 以上任何一个都不比另一个安全。 某些人似乎感到困惑的是“我的数据”的概念以及Spring Security如何处理它。 如果在Controller中希望用户只能访问其“图片”,则应仅基于经过身份验证的用户查询“图片”。
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()
}
但是,出于管理目的,我可能只有一个单独的Controller,而不是尝试在一个Controller中执行过多的逻辑。 或者,将逻辑移至服务。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.