>  기사  >  Java  >  Spring JSONView에서 민감한 데이터의 JSON 직렬화 및 역직렬화를 어떻게 제어할 수 있나요?

Spring JSONView에서 민감한 데이터의 JSON 직렬화 및 역직렬화를 어떻게 제어할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-11-19 18:56:02562검색

How Can I Control JSON Serialization and Deserialization of Sensitive Data in Spring JSONView?

@JsonIgnore를 사용한 JSON 직렬화 및 역직렬화 제어

Spring JSONView 애플리케이션에서는 속성이 직렬화 및 역직렬화되는 방식을 사용자 정의하는 것이 어려울 수 있습니다. 일반적인 시나리오는 직렬화 중에 해시된 비밀번호와 같은 민감한 데이터를 제외하면서도 역직렬화할 수 있는 경우입니다.

이를 달성하기 위해 비밀번호 속성에 @JsonIgnore 주석을 사용합니다. 그러나 이렇게 하면 속성이 역직렬화되는 것을 방지하여 기존 비밀번호가 없는 경우 사용자 등록이 어려워질 수 있습니다.

해결책은 사용되는 Jackson 버전에 따라 다릅니다. 1.9 이전에는 getter 메소드에서만 @JsonIgnore를 사용할 수 있었습니다. 최신 버전의 경우 다음 주석을 추가합니다.

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY): setter 메서드의 이 주석은 직렬화를 허용하지만 역직렬화는 차단합니다.

또는 @JsonProperty의 READ_ONLY 액세스 유형 인수를 사용하여 이 작업도 수행할 수 있습니다.

@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private String password;

이러한 주석은 비밀번호 속성이 JSON 변환 중에만 직렬화되지만 객체 생성 중에는 역직렬화될 수 있도록 보장합니다.

이러한 기술을 따르면 민감한 속성의 JSON 직렬화 및 역직렬화를 선택적으로 제어하여 웹 애플리케이션에 유연성과 보안을 제공할 수 있습니다.

위 내용은 Spring JSONView에서 민감한 데이터의 JSON 직렬화 및 역직렬화를 어떻게 제어할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.