37. 정보 수정
-정보 수정
*update 권한 설정 추가(SecurityConfig.java)
// 권한 설정
http.authorizeRequests()
// 127.0.0.1:8080/ROOT/admin/login
.antMatchers("/admin", "/admin/*").hasAuthority("ADMIN")
// 127.0.0.1:8080/ROOT/seller/login <= ADMIN, SELLER
.antMatchers("/seller", "/seller/*", "/api/seller/*").hasAnyAuthority("ADMIN", "SELLER")
.antMatchers("/api/member/update")
.hasAnyAuthority("SELLER", "CUSTOMER").anyRequest().permitAll().and();
*member_update put 추가(ApiMemberController.java)
*비밀번호는 수정되면 안되므로 기존 값을 넣어 유지한다.
**@RequestBody 를 사용했으므로 포스트맨에서 확인할 때 json 을 사용한다.
// 127.0.0.1:8080/ROOT/api/member_update
// {"userid" : "aaa", 이름, 연락처} entity와 키를 맞춰줌
@RequestMapping(value = "/member_update", method = {
RequestMethod.PUT }, consumes = MediaType.ALL_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public Map<String, Object> memberUpdate(@RequestBody Member member) {
Map<String, Object> map = new HashMap<>();
try {
Member member1 = mRepository.findById(member.getUserid()).get();
member.setUserpw(member1.getUserpw());
mRepository.save(member);
map.put("status", 200);
} catch (Exception e) {
e.printStackTrace();
map.put("status", 578);
}
return map;
}
*entity 수정(Member.java)
*userdate, userrole은 수정하지 않을 것이므로 update 되지 않도록 수정한다.
**updateable = false 를 하게 되면 이후 변경사항이 생겨도 수정이 불가능하게 되므로
이후에 변경 되어야 할 항목은 updateable = false를 하지 않고 controller에서 기존 값을 넣어주는 방식으로 한다.
... ...
@Column(name = "USERROLE", updatable = false)
private String userrole = null;
@CreationTimestamp
@Column(name = "USERDATE", updatable = false)
private Date userdate = null;
... ...
*정보 수정하기(포스트맨)
**정보 수정을 위해 먼저 member_select 을 통해 로그인 하여 토큰을 생성한다.
'Spring' 카테고리의 다른 글
Spring 일지 #39 (20210914) 화면 구현(비밀번호 변경) (0) | 2021.10.01 |
---|---|
Spring 일지 #38 (20210914) 화면 구현(회원 탈퇴) (0) | 2021.10.01 |
Spring 일지 #36 (20210914) 화면 구현(seller 페이지 접속) (0) | 2021.09.30 |
Spring 일지 #35 (20210914) 화면 구현(토큰 발행2) (0) | 2021.09.30 |
Spring 일지 #34 (20210914) 화면 구현(토큰 발행1) (0) | 2021.09.30 |