0

問題があります。多くの既存のリンクについては、セキュリティ上の理由からソルト ハッシュを追加したいと思います。既存のすべてのリンクを調べて変更したくありません。本当に、これを UrlMappings だけで解決したいと思っています。

着信リクエストを照合するために機能するものは次のとおりです。

    "/foo/$key/$hash" {
        controller = "foo"
        action = "bar"
    }

逆マッピング(createLink)で機能するものは次のとおりです。

    "/foo/$key/${DigestUtils.shaHex("$salt$key")}" {
        controller = "foo"
        action = "bar"
    }

私が理解できないように見えるのは、これら 2 つを 1 つに結合する方法、または一方が着信要求を処理し、もう一方が createLinks を処理する方法です。

何か案は?

4

1 に答える 1

0

これを行う 1 つの方法は、ハッシュ値を追加して createLink をラップするカスタム タグ ( TagLib 内) を作成することです。

だから基本的に

createHashLink = {属性 ->

def hash = "${DigestUtils.shaHex("$salt$key")}"
out << createLink( mapping: 'blah', params: [ hash: hash ] ) ...

}

コード内で g.createHashLink( ... ) を呼び出すだけで、createLink と同じように機能します。

于 2011-11-22T02:30:17.517 に答える