728x90
반응형
SMALL
스프링 시큐리티로 로그인된 사용자의 정보를 수정하기 위해선 사용자의 정보를 불러올 방법이 필요하다!
Principal 객체를 이용하여 사용자의 정보를 불러와보자!
스프링 시큐리티의 일부 내용
Principal로 사용자 정보에 접근할 수 있다.
memberController.java
1
2
3
4
5
6
7
8
9
10
11
|
@PreAuthorize("isAuthenticated()")
//마이프로필 창으로 이동
@GetMapping("myProfile")
public void profile(Principal principal,Model model) {
log.info("마이프로필 창으로 이동");
log.info("유저아이디: "+principal.getName());
String userid=principal.getName();
MemberVO vo=service.read(userid);
model.addAttribute("user", vo);
}
|
cs |
4행: Principal 값을 파라미터로 받는다.
8행: Principal 에서는 name이 사용자의 아이디 값으로 의미된다. String 으로 형변환을 해준다,
9행: Service 메서드를 통해서 파라미터값으로 형변환된 사용자의 아이디값을 넣어 사용자의 정보를 불러오자
10행: "user" 에 유저정보를 넘겨주어 View 단에서 써먹도록 하자
myProfile.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<form id="actionForm" action="/member/modify" method="post">
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
<input type="hidden" name="userid" value='<sec:authentication property="principal.username"/>' />
<sec:authentication property="principal.username"/></h4>
<small><cite title="San Francisco, USA">San Francisco, USA <i class="glyphicon glyphicon-map-marker">
</i></cite></small>
<p>
<i class="glyphicon glyphicon-envelope">이름</i>
<input class="form-control" name="username" value="<c:out value="${user.username }"/>" >
<br />
<i class="glyphicon glyphicon-globe"></i><a href="http://www.jquery2dotnet.com">www.jquery2dotnet.com</a>
<br />
<i class="glyphicon glyphicon-gift"></i><c:out value="${user.regDate}"/></p>
</form>
<button type=button><a href="/board/list">취소</a></button>
<button id='update' type=submit>수정</a></button>
|
cs |
6행: 사용자의 id 값
11행: 사용자 이름
15행: 사용자 등록 일자
현재 로그인된 사용자의 정보가 추출 되었고 DB에 담긴 정보와 일치함을 확인할 수 있다.
728x90
반응형
LIST
'SPRING > 스프링' 카테고리의 다른 글
[스프링]23. 대댓글 구현(스프링 레거시) (0) | 2021.07.14 |
---|---|
[스프링]22. 시큐리티로 로그인된 사용자의 정보 수정하기 (2) | 2021.06.15 |
[스프링]20. summernote를 이용한 글쓰기 폼 구현 (0) | 2021.05.31 |
[스프링]19. ajax 파일 전송에 대한 이해(1) (0) | 2021.05.25 |
이클립스 깃허브 nothing to fetch 오류 (0) | 2021.05.07 |