• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

스프링 시큐리티 로그인 후 모달창 질문드립니다

24.01.22 12:41 작성 24.01.22 13:23 수정 조회수 251

0

(선생님 아래 댓글에 나름대로 해결책 적어놓았습니다!)

 

선생님 안녕하세요.

기존 로그인 방식을 session에서 security로 바꾸면서 로그인에 성공하면 RedirectAttribute를 이용한 모달창 띄워주기는 어떻게 해야 하는지 고민됩니다.

시큐리티 내부에서 /login.do 요청을 처리해주니 왠지 시큐리티 내부 필터에 설정을 해줘야 하나? 라는 생각이 듭니다.

로그인에 실패하면 시큐리티에서 error를 파라미터를 넘겨주니, 로그인 성공 시 특정 파라미터를 1회성으로 넘겨주는 것이 있을까? 라는 생각도 듭니다.

아니면.. 시큐리티로 로그인에 성공하는 순간 url경로를 설정하여 특정 컨트롤러에서 받아줘서 그곳에서 redirect를 해줘야 할까요?

 

아래의 사진은 기존 로그인 방식에서 RedirectAttributes의 addFlash를 이용한 참고사진입니다.

감사합니다!

 

답변 2

·

답변을 작성해보세요.

0

kimks071님의 프로필

kimks071

질문자

2024.01.22

로그인 성공 직후, main.jsp에서 ${user}로 회원의 정보를 추출해서 ajax를 이용하여 서버의 @PathVariable로 memID를 넘겨 로그인을 한 그 회원을 조회하여 모달창을 뿌려주는 방법으로도 해봤어요.

image이런식으로 하면 단순 문자열이 아니라 회원의 정보까지 모달창에 뿌려줄 수 있어요

image로그아웃도 동일한 방식으로 해봤어요

image

어쩌다보니 제 블로그 공간처럼 되어버렸네요 ㅎㅎ

선생님께서 봐주시고 검토해주시면 감사하겠습니다!

0

kimks071님의 프로필

kimks071

질문자

2024.01.22

 

선생님께 질문 드리는 과정에서 아이디어가 떠올라서 이렇게 해도 괜찮을지 여쭙고자 다시 댓글 남겨드립니다!

url요청이 복잡해지는 것이 이래도 될까 싶지만, 제가 원하던 "시큐리티로 로그인 시 모달창 띄워주기"는 잘 됩니다.

image

시큐리티에서 로그인에 성공하면 루트경로("/")로 리다이렉트를 해주니, 루트경로("/")에서 요청을 받아 addFlash로 1회성 객체바인딩을 해주고 "/main"으로 다시 리다이렉트하여 main.jsp로 포워딩하는 것입니다.

이렇게하면 아래 그림처럼 로그인 성공 시 모달창을 띄워줍니다.

image

하지만 로그아웃에 성공해도 루트경로를 요청하니, 로그아웃에도 "안녕하세요"를 띄워주는 게 문제가 되어 securityconfig에서 로그아웃 성공 url을 "/" -> "/main"으로 변경하였습니다.

image

감사합니다.

잘하셨는데. 시큐리티로 로그인을 한후 뷰(View)단에서는 인증여부를 체크하여 Alert등 Modal으 띄워주면 될듯한데. addFlash로 1회성 객체바인딩을 해줄 필요가 있을까 합니다.
View단에서 principal객체를 이용하면 인증여부를 체크 하실수 있을건데요?
JSP에서 스프링시큐리티 객체 가져오기를 한번 찾아보시고 적용을 배보시는 것도 좋겠습니다.