일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 좀비고루틴
- gin logger
- git
- golang gopher
- air 환경변수
- go air
- go panic
- gopath 환경변수
- go 마스코트
- go 맥 air 환경변수
- 2년차개발자
- go 캐릭터
- clean architecture middleware
- 신입개발자
- go recover
- 개발자
- go 환경변수
- go 맥
- go channel
- go clean architecture
- go
- go air 환경변수
- go 맥 air
- 골랑 고퍼
- go 대기그룹
- gin recovery
- go middleware
- gin middleware
- 고루틴 채널
- go디자인패턴
Archives
- Today
- Total
뽀미의 개발노트
로그인 세션에 저장할때.. (Id로 저장하냐 member 통째로 저장하냐 차이) 본문
@Getter
private Member loginedMember;
private HttpServletRequest req;
private HttpServletResponse resp;
private HttpSession httpSession;
public Rq(HttpServletRequest req,
HttpServletResponse resp) {
this.req = req;
this.resp = resp;
this.httpSession = req.getSession();
Member loginedMember = null;
if(httpSession.getAttribute("loginedMember") != null) {
loginedMember = (Member)httpSession.getAttribute("loginedMember");
}
this.loginedMember = loginedMember;
this.req.setAttribute("rq", this);
}
public void login(Member member) {
httpSession.setAttribute("loginedMember", member);
}
public void logout() {
httpSession.removeAttribute("loginedMember");
}
아니 로그인 세션에 저장해서 유지하는 걸 이렇게 loginedMember에 담아서 저장하고,
로그인 됐는지 안 됐는지 판단은 rq.getLoginedMeber() == null 이렇게 하고 현재 로그인한 멤버의 아이디는 rq.getLoginedMeber().getId() == memberId 뭐 이런 식으로 비교했었는데 로그인이 자꾸 1분도 안 되서 풀리는것!!
어떤 분이 자바 서버단에서 뭐 기능 계속 추가하고 그러느라 초기화되어서 그런거 아니냐고 하셨는데.. 저번에 loginedMemberId로 할 때는 전혀 이런 문제가 없었단 말이지.. 그래서 이유는 모른채로 일단
@Getter
private int loginedMemberId;
@Getter
private Member loginedMember;
private HttpServletRequest req;
private HttpServletResponse resp;
private HttpSession httpSession;
public Rq(HttpServletRequest req, HttpServletResponse resp, MemberService memberService) {
this.req = req;
this.resp = resp;
this.httpSession = req.getSession();
int loginedMemberId = 0;
Member loginedMember = null;
if(httpSession.getAttribute("loginedMemberId") != null) {
loginedMemberId = (int)httpSession.getAttribute("loginedMemberId");
loginedMember = memberService.getMemberById(loginedMemberId);
}
this.loginedMemberId = loginedMemberId;
this.loginedMember = loginedMember;
this.req.setAttribute("rq", this);
}
public void login(Member member) {
httpSession.setAttribute("loginedMemberId", member.getId());
}
public void logout() {
httpSession.removeAttribute("loginedMemberId");
}
이렇게 판단 기준을 다 loginedMemberId로 바꿔주고 로그인 했는지 안 했는지 검사할때도 저걸로 비교하도록 해주니까 로그인 빨리 풀리는 문제점이 귀신같이 사라짐.. 근데 어차피 authlevel도 비교하고 해야해서 원래 만들었던 loginedMember도 살려는 뒀음.. 아니 왜 저러는 거지? 뭐 일단 모르겠지만 문제 해결~! 꺄륵^^
'Trouble_Shooting' 카테고리의 다른 글
mysql에서 WITH AS 자꾸 오류 났던 이유... (3) | 2023.05.28 |
---|---|
if(list == null) 은 잘못된 조건식이다!! (0) | 2023.05.26 |
자바스크립트에 form 매개변수로 보낼때.. (필수정보 누락 막기) (1) | 2023.05.26 |
form 에 적힌 여러 정보를 list로 받아 controller로 한번에 보내기 (0) | 2023.05.24 |
다중 셀렉트 박스 만들기 (0) | 2023.05.23 |