欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

(B站云e办)SpringBoot开发项目实战记录(十)

时间:2023-06-29
(B站云e办)SpringBoot开发项目实战记录(十)

一、修改用户信息接口

1.1 pojo层(自定义发序列化器)1.2 CustomAuthorityDeserializer 自定义的反序列化类 一、修改用户信息接口 1.1 pojo层(自定义发序列化器)

⭐知识点:@JsonDeserialize(using = CustomAuthorityDeserializer.class)这里使用自己写的反序列化进行反序列化

@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)@TableName("t_admin")@ApiModel(value="Admin对象", description="")public class Admin implements Serializable, UserDetails { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "id") @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty(value = "姓名") private String name; @ApiModelProperty(value = "手机号码") private String phone; @ApiModelProperty(value = "住宅电话") private String telephone; @ApiModelProperty(value = "联系地址") private String address; @ApiModelProperty(value = "是否启用") @Getter(AccessLevel.NONE) private Boolean enabled; @ApiModelProperty(value = "用户名") private String username; @ApiModelProperty(value = "密码") private String password; @ApiModelProperty(value = "用户头像") private String userFace; @ApiModelProperty(value = "备注") private String remark; @ApiModelProperty(value = "角色") @TableField(exist = false) private List roles; @Override @JsonDeserialize(using = CustomAuthorityDeserializer.class) public Collection<? extends GrantedAuthority> getAuthorities() { List authorities = roles.stream().map(role -> new SimpleGrantedAuthority(role.getName())).collect(Collectors.toList()); return authorities; } @Override public boolean isAccountNonExpired() { return true; } @Override public boolean isAccountNonLocked() { return true; } @Override public boolean isCredentialsNonExpired() { return true; } @Override public boolean isEnabled() { return enabled; }}

1.2 CustomAuthorityDeserializer 自定义的反序列化类

** * 自定义 Authority解析器 */public class CustomAuthorityDeserializer extends JsonDeserializer { @Override public Object deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { ObjectMapper mapper = (ObjectMapper) jsonParser.getCodec(); JsonNode jsonNode = mapper.readTree(jsonParser); List grantedAuthorities = new linkedList<>(); Iterator elements = jsonNode.elements(); while (elements.hasNext()) { JsonNode next = elements.next(); JsonNode authority = next.get("authority"); grantedAuthorities.add(new SimpleGrantedAuthority(authority.asText())); } return grantedAuthorities; }}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。