ネットワークドライブへのシンボリックリンクである画像フォルダー内にサブディレクトリがあります。これにより、何千もの画像をより適切な場所に保存できます。
認証されたユーザーがこれらの画像をロードするページにアクセスした場合、認証されていないユーザーはブラウザーから画像の直接 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']
]
最終的な結果として、コントローラーとページには適切なセキュリティが適用されますが、「静的」リソースは認証をチェックしません。
事前にURLを知っている場合は、ログインせずに適切なグループに属していないと画像にアクセスできないことを保証する必要があります。
ありがとうございました。