【发布时间】:2014-03-12 23:10:05
【问题描述】:
我正在使用 spring 安全性在 grails 中构建一个 Web 门户。在我的门户中 具有USER、ADMIN 角色的用户有权编辑他们的个人资料。通过以 USER 角色登录,进入编辑页面/RITE/user/myedit/2 并可以进行编辑。问题是当我通过/RITE/user/myedit/1 编辑网址/RITE/user/myedit/2 时,我能够看到ADMI 特权用户。我尝试了注释,但没有用。我怎样才能避免这种情况?
@Secured(['ROLE_ADMIN','ROLE_USER'])
def mylist(Integer max)
{
def user = springSecurityService.currentUser
def c= User.findByUsername(user.username)
params.max = Math.min(max ?: 10, 100)
[userInstanceList: c]
}
@Secured(['ROLE_ADMIN','ROLE_USER'])
def myshow(Long id) {
//userService.show(id)
//println "in myshow"
def user = springSecurityService.currentUser
UserDetails currentUser = springSecurityService.principal
if(id==currentUser.id){
def userInstance = User.get(id)
if (!userInstance) {
flash.message = message(code: 'default.not.found.message', args: [message(code: 'user.label', default: 'User'), id])
redirect(action: "mylist")
return
}
[userInstance: userInstance]
}
}
@Secured(['ROLE_ADMIN','ROLE_USER'])
def myedit(Long id) {
def user = springSecurityService.currentUser
UserDetails currentUser = springSecurityService.principal
def c= User.findByUsername(user.username)
if(id == user.id ){
def userInstance = User.get(c.id)
if (!userInstance) {
flash.message = message(code: 'default.not.found.message', args: [message(code: 'user.label', default: 'User'), id])
println("not allowed")
redirect(action: "mylist")
return
}
[userInstance: userInstance]
}
}
【问题讨论】:
-
你写“我试过注释,但没用”——你试过什么? - 你应该发布你试过的!
-
@Ralph 我编辑了我的帖子
标签: spring url grails spring-security