我正在尝试建立一个在线照片库,以便用户从其移动设备(如Android)将图像上传到服务器并可以访问它。
当前,我将Grails与Spring Security Plugin Core结合使用,并将所有上传的图像保存在/ web-app / uploaded-image的文件夹中。上载部分目前正在运行,我可以将图像从设备上载到服务器的上载图像文件夹。
但是,我有一个问题是,当前我正在Config.groovy中使用这些行来执行访问控制部分
grails.plugins.springsecurity.interceptUrlMap = [
/uploaded_image/**':['IS_AUTHENTICATED_REMEMBERED']
]
最佳答案
您可以使用以下逻辑来确保不是图像所有者的用户没有查看图像的权限
class ImageController {
def springSecurityService
def showImage() {
Image image=Image.get(parmas.long("id")
// this is the user who is trying to access image from ui
User user = User.get(image.userId)
//this is the logged-in user
User logged = User.get(springSecurityService.principal.id)
if (user.id != logged.id) {
{
redirect(action: "accessDenied", controller='access' id: params.long("id"))
//re-direct accessDenied page
}else{
//show image
}
}
Class AccessController{
def accessDenied= {
render(view: "accessDenied")
}
}
https://stackoverflow.com/questions/10038591/