2011-09-20 2 views
2

SOAP 요청/응답을 기록하기 위해 Spring의 SoapEnvelopeLoggingInterceptor을 사용하고 있습니다.SOAP 메시지를 로깅 할 때 base64binary 필드를 무시하는 방법은 무엇입니까?

일부 요청/응답에는 로그 파일에 많은 공간을 차지하는 base64Binary 필드가 포함되어 있으며이를 내 용도로 기록 할 필요가 없습니다. 내가 사용하는 java.xml.transform.Transformer을 볼 수 있습니다 SoapEnvelopeLoggingInterceptor의 코드에 파고

는 다음과 같이 생성됩니다 :

Transformer transformer = createTransformer(); 
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); 
transformer.setOutputProperty(OutputKeys.INDENT, "no"); 
return transformer; 

base64Binary의 내용을 인쇄하는 것을 방지합니다 나는 Transformer에 설정할 수있는 몇 가지의 호텔을 고를 수 있습니다 전지? 또는 기록되지 않도록 구성하거나 대체 할 수있는 다른 항목이 있습니까?

답변

0

Transformer에 대해 모르겠지만 Base64 필드의 숫자는 대소 문자와 거의 같습니다. 일반 텍스트는 더 많은 소문자 또는 모두 대문자로 나타나는 경향이 있습니다. 그 차이를 그 방법으로 결정할 수 있습니다.

또한 Base64에는 절대로 표시되지 않는 문장 부호가 있습니다. 이 중 하나를 보면 해당 필드가 Base64가 아님을 알 수 있습니다.