이브
415
2017-10-05 12:19:56 작성 2017-10-05 16:04:48 수정됨
2
588

(질문 수정) 스프링 시큐리티 초보 질문 드립니다


독학+질문+검색으로 스프링 프로젝트를 만들고 있습니다.

다른건 검색으로 어느정도 해결이 되는데요. 시큐리티는 너무 어렵네요...



현재, 로그인+아웃/회원가입은 구현을 해 둔 상태이고, 회원정보 수정 부분만 남아 있습니다.
그런데 제가 아는 범위 내에서 회원 정보를 수정하는 페이지를 만들려면(링크가 되려면),
유저 인덱스나 유저 아이디를 POST로 넘기고, 그 정보를 받는 페이지를 만들어야 할 텐데요..
회원정보를 가지고 있는 페이지로 연결 할 그 버튼 자체를 만들지 못하고 있습니다.



(수 정)
예를 들어, user_idx값이 1인 유저로 로그인을 한 상태에서 이 유저가 user_name을 수정하려고 할 때,

<button type="button" onclick="location.href='/user/user_profile?user_idx=${map.user_idx}'">...</button>
이런식으로 해당 유저에 해당되는 고유값을 줘야 그 유저의 데이터(이름, 아이디, 비번...등)을 화면에 띄우고,
DB에 비밀번호를 업데이트 한다던가 이름을 업데이트 한다던가..할텐데요.
이 작업이 막혀 있는 상황입니다.



왜냐면 스프링 시큐리티는 제가 아는(작성한) 범위 내에서는,
권한 여부를 확인하고, 따로 해당 페이지에 parameter를 전달하는게 없기 때문인데요..
스프링 시큐리티에서 회원 정보 수정 페이지는 어떻게 만드는건가요?

0
0
  • 답변 2

  • 아리나니아
    122
    2017-10-05 14:54:37

    권한 여부는 메소드에 @PreAuthorize 이걸 사용하세요. 

    로그인한 회원정보는 컨트롤러 메소드 파라미터에 Principal 객체를 추가하여 사용하면 됩니다. 그 외에도 태그로 얻어오거나 SecurityContextHolder로 가져올 수 있습니다.

    파라미터를 전달하는게 없다는 게 무슨 말인지는 잘 모르겠는데 url에 저렇게 개인정보 붙여서 보내지마시고 그냥 ajax 사용해서 컨트롤러에서 받으세요 

    0
  • 이브
    415
    2017-10-05 16:03:53

    아리나니아 님

    아직 정확히 이해는 못한 상태입니다만.. SecurityContextHolder를 공부해보도록 하겠습니다.

    덧, 위에 예시가 좀 난해했던거 같아서 수정을 해 보았습니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.