0

我有问题。对于很多现有的链接,出于安全原因,我想添加一个加盐哈希。我不想查找和更改所有现有链接。真的,我很想在 UrlMappings 中解决这个问题。

以下是匹配传入请求的内容:

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

这是适用于反向映射(createLink)的东西:

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

我似乎无法弄清楚如何将这两者合二为一,或者如何让一个处理传入的请求,另一个处理 createLinks。

有任何想法吗?

4

1 回答 1

0

一种方法是创建一个自定义标签(在 TagLib 中),它将添加哈希值并环绕 createLink。

所以基本上

createHashLink = { attrs ->

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

}

在您的代码中,您可以调用 g.createHashLink( ... ),它的工作方式与 createLink 相同。

于 2011-11-22T02:30:17.517 回答