본문으로 바로가기
728x90
반응형
SMALL

스프링 시큐리티로 로그인된 사용자의 정보를 수정하기 위해선 사용자의 정보를 불러올 방법이 필요하다!

Principal 객체를 이용하여 사용자의 정보를 불러와보자!

 

스프링 시큐리티의 일부 내용

출처:https://mangkyu.tistory.com/76

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