作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
任何用户都可以创建自己的机器人。只能由创建者或管理员编辑机器人。
下一个代码可以完美地工作,它是一个简单易用的解决方案:
import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils
class RobotController {
def springSecurityService
def edit() {
if (Robot.get(params.id).usuario.username == springSecurityService.authentication.name
|| SpringSecurityUtils.ifAnyGranted("ROL_ADMIN,ROL_SUPERADMIN"))
println "editing allowed"
else
println "editing denied"
}
}
grails.plugins.springsecurity.interceptUrlMap = [
'/index.gsp': ["isAuthenticated()"],
'/robot/edit/**': ["Robot.get(params.id).usuario.username == springSecurityService.authentication.name
|| hasAnyRole('ROL_ADMIN','ROL_SUPERADMIN')"],
'/robot/**': ["isAuthenticated()"]
]
Robot
params.id
在这个地方没有意义||
)在这里无效。我没有运气就尝试了其他方法。 Groovy documentation对我来说不清楚。 <sec:access> ... </sec:access>
?
最佳答案
我不认为您可以使用普通的Spring Security核心来做这种事情。
您的老师是对的,您可能不应该以即席方式实现安全性,但是您不一定必须在Config.groovy中实现它-这有点限制。
您可能想使用Spring Security ACL plugin,它添加了更多域类,并允许您使用更精细的细节来设置访问控制。
checkout the official docs。您可能需要花一些时间来学习它,但是它比推出您自己的ACL机制要好得多。
关于grails - 如何将编辑限制为使用Grails创建的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913165/
我是一名优秀的程序员,十分优秀!