Можно ли разделить обычные и обратные UrlMappings в граалях? - PullRequest
0 голосов
/ 11 ноября 2011

У меня проблема.Для многих существующих ссылок я бы хотел добавить соленый хеш по соображениям безопасности.Я не хочу искать и изменять все существующие ссылки.Действительно, я бы хотел решить эту проблему только в UrlMappings.

Вот что работает для сопоставления входящих запросов:

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

Вот кое-что, что работает для обратного сопоставления (createLink):

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

То, что я не могу понять, - это как объединить эти два в одном или как один обрабатывает входящие запросы, а другой - createLinks.

Есть идеи?

1 Ответ

0 голосов
/ 22 ноября 2011

Один из способов сделать это - создать собственный тег (в TagLib), который будет добавлять значения хешей и обтекать createLink.

Так в основном

createHashLink = {attrs ->

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

}

В вашем коде вы можете просто вызвать g.createHashLink (...), который будет работать так же, как createLink.

...