0

我的图像文件夹中有一个子目录,它是网络驱动器的符号链接。这使我们能够将数千张图像存储在更适合的地方。

如果经过身份验证的用户访问了加载这些图像的页面,则未经身份验证的用户可以从浏览器访问图像的直接 url 路径。

例如,如果图像路径是: http ://some.server.com:8080/SomeApp/static/images/gpfscc/data_storage/frameburglar/img/33/1761/some_image.jpg

全世界都可以访问。

我尝试使用 staticRules、悲观锁定和interceptUrlMap 以几种不同的方式对其进行配置。

我当前的 config.groovy 看起来像这样:

//Too ristrictive? Could not get past login
//grails.plugins.springsecurity.rejectIfNoRule = true

//grails.plugins.springsecurity.controllerAnnotations.staticRules = [
//        '/images/gpfscc/**': ['IS_AUTHENTICATED_REMEMBERED'],
//        '/static/images/gpfscc/**': ['IS_AUTHENTICATED_REMEMBERED']
//
//]

grails.plugins.springsecurity.interceptUrlMap = [
//        '/images/gpfscc/**': ['IS_AUTHENTICATED_REMEMBERED'],
//        '/static/images/gpfscc/**': ['IS_AUTHENTICATED_REMEMBERED'],
        '/secUser/**':         ['IS_AUTHENTICATED_REMEMBERED'],
        '/secUserSecRole/**':     ['IS_AUTHENTICATED_REMEMBERED'],
        '/trip/**':         ['IS_AUTHENTICATED_REMEMBERED'],
        '/collection/**':   ['IS_AUTHENTICATED_REMEMBERED'],
        '/secRole/**':         ['IS_AUTHENTICATED_REMEMBERED'],
        '/vehicle/**':      ['IS_AUTHENTICATED_REMEMBERED'],
        '/login/**':        ['IS_AUTHENTICATED_ANONYMOUSLY'],
        '/logout/**':       ['IS_AUTHENTICATED_ANONYMOUSLY'],
        '/*':               ['IS_AUTHENTICATED_ANONYMOUSLY']
]

最终结果是控制器和页面应用了适当的安全性,但“静态”资源永远不会检查身份验证。

我需要保证,如果您提前知道该网址,则您无法在未登录和正确组的情况下访问该图像。

谢谢你。

4

0 回答 0