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 중국어 웹사이트의 기타 관련 기사를 참조하세요!