2011-11-11 3 views
0

문제가 있습니다. 기존 링크가 많으면 보안상의 이유로 소금에 절인 해시를 추가하고 싶습니다. 나는 기존의 모든 링크를보고 변경하고 싶지 않습니다. 정말, 난 그냥 UrlMappings에서 이것을 해결하고 싶습니다. 여기grails에서 정규 및 역 Url 매핑을 분리 할 수 ​​있습니까?

들어오는 요청을 일치 작동 뭔가 :

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

여기에 역 매핑 (에서 CreateLink) 작동 뭔가 : 내가 알아낼 수없는 무엇

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

가 어떻게이 이 둘을 하나로 결합하거나, 들어오는 요청을 처리하는 방법과 다른 요청을 처리하는 방법.

아이디어가 있으십니까?

답변

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

관련 문제