Grails の *.gsp ページへの直接アクセスを防ぐための実行可能な解決策をアドバイスしてくれる人はいますか?
インターセプト '/**.gsp' を確認したところ、直接アクセスを除外するだけでなく、コントローラーなどからレンダリングされたページも除外するため、これを使用することは不可能であることがわかりました。
*.gsp の直接アクセスを防ぐことはできますが、UrlMapping.groovy で次のように設定しようとしましたが、ページのナビゲーションも混乱します。その場合、すべてのリンクがホームページに移動するようです。
"/**.gsp" {
isEligible = {
System.err.println("ALL PARAMS: " + params)
request.requestURL.toString().endsWith(".gsp")
}
controller = {
if (request.requestURL.toString().endsWith(".gsp")) {
"public"
} else {
"*"
}
}
action = {
if (request.requestURL.toString().endsWith(".gsp")) {
"home"
} else {
"*"
}
}
}
org.springframework.web.filter.OncePerRequestFilter のようなセットアップ フィルターについて考えたことがありますが、おそらく Grails は web.xml フィルター セクションを自動的に生成する傾向があるため、それを定義する方法がよくわかりません。
何かご意見は?
どうもありがとう!トム