2011-11-11 7 views
0

問題があります。既存のリンクがたくさんある場合は、セキュリティ上の理由から塩漬けのハッシュを追加したいと思います。私はルックアップして既存のリンクをすべて変更したくありません。本当に、私はUrlMappingsでこれを解決するのが大好きです。ここでgrailsで正規および逆Urlマッピングを分けることはできますか?

は、着信要求に合致するために働く何か:

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

はここで逆マッピング(CREATELINK)のために働く何か:私は把握することができないよう何

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

どのようにされましたこれらの2つを1つに結合する方法、または着信要求を処理する方法と、もう1つがcreateLinkを処理する方法があります。

アイデア?

答えて

0

これを行うには、ハッシュ値を追加してcreateLinkをラップするカスタムタグ(TagLib内)を作成する方法があります。

そこで、基本的

createHashLink = {attrsに - >

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

}あなたのコードで

、あなたはちょうどg.createHashLink(...)を呼び出すことができますで動作しますcreateLinkと同じ方法です。

+0

私はそれがうまくいくことは知っていますが、私はUrlMappingsから直接それを行うことを望んでいました。その一部はUrlMappingsで動作します。ただ一緒に物事をまとめることはできません。 – mcv

関連する問題