0

SpringアプリケーションにJSON応答を返すためのJacksonMessageConverterがあります。しかし、JSONが返される前に、 Ajaxセキュリティ-JSONハイジャックの防止で与えられているようにJSONを汚染したいと思います。メッセージコンバーターを使用するときにそうすることは可能ですか?

アップデート

responsebodyを使用してこの春のprefixjsonに似た解決策を探していますが、構成はすでに正しく設定されています。PFB

<bean id="jacksonMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
    <property name="prefixJson" value="true" />
    <property name="supportedMediaTypes" value = "text/plain;charset=UTF-8" />
</bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
            <ref bean="jacksonMessageConverter"/>
        </list>
    </property>
</bean>

ただし、返されたJSONのプレフィックスは「&&{}」ではありません。

注: Ajaxセキュリティ-JSONハイジャックの防止で説明されているように、JSONに別のプレフィックスを使用したい のですが、Jacksonで提供されているデフォルトのサポートでさえ機能していないようです。何か案は?

4

2 に答える 2

1

MappingJacksonHttpMessageConverter をデバッグして、trueprefixJsonに等しいかどうかを確認してください。そうでない場合は、Bean が適切に注入されていません。はいの場合は、MappingJacksonHttpMessageConverter クラスのメソッドを調べます。IT は明らかに必要なことを行います。writeInternal()

try {
        if (this.prefixJson) {
            jsonGenerator.writeRaw("{} && ");
        }
        this.objectMapper.writeValue(jsonGenerator, o);
    }

カスタムプレフィックスを追加する場合は、オーバーライドwriteInternal()してそこで行う必要があります。

于 2012-03-16T16:22:09.097 に答える
1

より簡単なアプローチは、MappingJacksonHttpMessageConverter を拡張し、writeInternal メソッドをオーバーライドして、カスタム プレフィックスなどを実行することです。

于 2012-03-16T16:01:04.447 に答える