> Java > java지도 시간 > 본문

Spring MVC의 JSON 응답에서 민감한 필드를 무시하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-26 09:40:30
원래의
690명이 탐색했습니다.

How to Ignore Sensitive Fields in JSON Responses from Spring MVC?

Spring MVC의 JSON 응답에서 민감한 필드 무시

RESTful API에서 민감한 정보를 처리할 때 RESTful API의 어떤 필드를 제어하는 ​​것이 중요합니다. 모델 객체는 JSON 응답에 노출됩니다. Spring MVC에서는 객체를 JSON으로 보내는 동안 특정 필드를 동적으로 제외할 수 있습니다.

주석을 사용한 모델 객체 설계

다음을 사용하여 Java 모델 클래스(@Entity)를 구성하세요. @JsonIgnoreProperties(ignoreUnknown = true) 주석. 이는 JSON을 객체로 역직렬화할 때 알 수 없는 속성을 무시합니다.

<code class="java">@Entity
@Table(name = "user")
@JsonIgnoreProperties(ignoreUnknown = true)
public class User {
    // ... (Model fields)
}</code>
로그인 후 복사

컨트롤러 메서드

Spring MVC 컨트롤러에서 다음을 사용하여 데이터베이스에서 사용자 객체를 검색합니다. 서비스 계층.

<code class="java">@RequestMapping(value = "/getUser/{userId}", method = RequestMethod.GET)
@ResponseBody
public User getUser(@PathVariable Integer userId) throws Exception {
    User user = userService.get(userId);
    return user;
}</code>
로그인 후 복사

주석을 사용한 선택적 제외

특정 필드를 선택적으로 제외하려면 해당 getter 메서드에 @JsonIgnore 주석을 답니다. 이렇게 하면 JSON 직렬화 중에 이러한 필드가 무시됩니다.

<code class="java">@JsonIgnore
public String getEncryptedPwd() {
    return encryptedPwd;
}</code>
로그인 후 복사

동적 제외

제외할 필드 목록이 사용자에 따라 달라지는 경우 맞춤형 솔루션:

<code class="java">@RequestMapping(value = "/getUser/{userId}", method = RequestMethod.GET)
@ResponseBody
public User getUser(@PathVariable Integer userId, @RequestHeader("username") String username) {
    User user = userService.get(userId);
    
    // Get excluded fields list based on the logged-in user
    List<String> excludedFields = getExcludedFields(username);
    
    // Iterate through the excluded fields and set their values to null
    for (String field : excludedFields) {
        switch (field) {
            case "encryptedPwd":
                user.setEncryptedPwd(null);
                break;
            // ... (Similar logic for other fields)
        }
    }
    
    return user;
}</code>
로그인 후 복사

위 내용은 Spring MVC의 JSON 응답에서 민감한 필드를 무시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!