2013-06-18 44 views
1

注意:在從Grails 1.3.6升級到2.2.2的過程中。從HTML編碼消息中停止Grails?

如果我有一個標籤,如:

<g:message code="some.code.here" args="${[someHTML]}" /> 

即使設置Config.groovy中跟隨它的編碼值作爲HTML:

grails.views.default.codec = "none" 

這不是一個問題Grails 1.3.6。它適用於整個項目的所有標籤。這是傳遞鏈接所必需的,因爲我們正在傳遞基於語言的鏈接。

任何想法爲什麼這不工作,即使它在升級之前工作或解決方法?

如果HTML位於.properties文件中,則渲染正常。如果該變量只是嵌入到頁面中,它可以正常工作。它將它作爲g:message的參數傳遞給它,導致它錯誤的行爲。我曾嘗試使用<%= someHTML%>方式將其傳入,但它似乎並不那樣,告訴我缺少一個報價。

回答

2

g:由於XSS漏洞(GRAILS-7170),郵件發生了更改。有關在某些情況下(例如您的用例)繼續使用HTML參數的解決方法,請參閱http://jira.grails.org/browse/GRAILS-10099

+0

謝謝,完美的作品。 – user1661781

+0

附註:從2.3開始,如果沒有解決方法,您可以使用encodeAs =「None」。 –

+0

-1,因爲包含解決方案的鏈接現在被破壞。出於這個原因,答案應該包括解決方案中最相關的部分 –