프로필 수정 처리와 그 외 개인적인 질문드립니다.
안녕하세요, 먼저 좋은 강의 만들어주셔서 감사드립니다.
해당 강의 '프로필 수정 처리' 학습을 진행하던 중 궁금한 사항이 생겨 질문드립니다.
.png)
먼저 강의 내용에서 처럼 POST 방식으로 프로필 수정 요청을 하는 경우
@PostMapping("{URL}") 어노테이션이 설정된 메소드가 실행이 되면서 DB의 정보와 Account 객체가 업데이트 되고, 여기서 Account 객체는 세션에 담긴 객체이지만 '준영속성(detached)' 상태로 AccountService.updateProfile(Account accoutn, Profile profile) 메소드를 통해 Merge를 하는 과정을 확인할 수 있었습니다.
.png)
다만, 여기서 궁금한 점은
1. 프로필이 수정되기 전 세션에 설정된 Account 객체는 로그인을 통해 SecurityContext에 저장된 User(Principal, 인증된 사용자 정보)와 동일하겠지만, 프로필 수정 후에는 세션의 Account 객체와 User는 서로 다른 상태가 되는게 맞을까요?
만약, 그렇다면 프로필 수정 후 User 정보도 Account 정보와 동일하게 맞추려면 어떤 방법이 있는지 궁금합니다.
2. [개인적인 질문] 만약, 관리자 페이지가 존재해서 사용자가 애플리케이션을 이용하고 있는 중에 관리자가 회원의 정보를 변경하는 경우 사용자는 자신의 정보가 변경이 되었는지 알 수 있는 방법이 있을까요?
- 사용자 측면에서 세션의 Account는 계속해서 관리자가 수정하기 전의 자신의 정보만을 바라보고 있을 것 같다라는 생각이 들어서 질문을 남겨봅니다.
글이 길어 졌네요. 답변 미리 감사드립니다.
답변 1
2
좋은 질문 감사합니다.
1. SecurityContext에 들어있는 Principal을 수정된 Account 객체로 바꿔주시면 됩니다.
SecurityContextHolder.getContext().setAuthentication(...);
2. 관리자가 사용자의 정보를 변경했을 때 세션에 들어있는 사용자의 정보까지 수정을 한다면 DB에 있는 정보를 바꿀테니 사용자가 사용하는 화면에서 사용자의 데이터를 DB에서 직접 읽어와 보여주는 화면들이라면, 그 화면들은 바뀐 정보를 보여줄 겁니다. 그러나, 말씀하신대로 세션에서 읽어서 보여주는 화면이라면 사용자가 바뀐 정보를 보지 못하겠죠. 다른 유저의 세션 정보까지 수정할 수 있는지는 모르겠으나.. 그런게 가능하다면 왠지 그 자체로 보안 이슈가 될 것 같네요.
Study 개설하는 로직에 대해서 궁금점이 있습니다.
0
56
1
앱 재시작 후 회원가입
0
104
1
app.host 관련 질문이 있습니다
0
98
1
강의 버전 정보
0
126
1
event, study 참조
0
222
2
비밀번호 변경 로직 질문있습니다.
0
136
1
프로필 수정 처리 merge 질문입니다.
0
108
1
회원가입 성공 후 redirect이동시 권한 질문
0
497
3
HtmlEmailService 개발하다 생긴 의문입니다
0
251
2
postgreSql 연결하여 JPA 를 통해 테이블 생성시 ZONE 테이블 생성에서 에러가 납니다
0
432
2
수업질문 [긴급] 로그인안되는 문제 말씀해주시는 부분 반영해서 최종 질문드립니다
0
264
2
[긴급-재업로드]수업질문 로그인 안 되는 문제
0
237
1
[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요
0
278
1
cropper 오류 문제로 질문드립니다..
0
289
2
authentication관련 질문...
0
498
2
모임참가 취소 할때 로직 질문
0
351
3
안녕하세요 기선님 질문이있습니다..
0
230
1
HTML코드 및 강의 중간자료들
0
680
3
springSecurity
0
525
2
버전 질문입니다.
0
304
1
부트스트랩, css
0
357
2
영속성 컨텍스트 질문
0
251
2
다시 강의를 보니 드는생각..
0
354
2
5:50에 나오는 HTML코드는 어디서 찾을 수 있나여?
0
316
1





