isAuthenticated 사용자 인증 문의
- 작성자 :
- 정*석
- 작성일 :
- 2014-10-27 16:35:55
- 조회수 :
- 1,435
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요
사용자 인증에 관련하여 문의 드립니다
로그인 후 메뉴 이동시 아래와 같은 권한을 체크하게 되어있습니다
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
ie에서는 윈도우창 뒤로가기 버튼을 누르고 아무 메뉴 클릭시
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();여기서
isAuthenticated변수에 false가 담깁니다 크롬에서 똑같은 액션을 취했는데 true가 담깁니다
ie일 경우 isAuthenticated() 메소드에서 아래와 같이
String username = authentication.getName(); => username 변수에 roleAnonymous담겨 return Boolean.FALSE;를 합니다
크롬일 경우 username 변수에 로그인 한 아이디(예:dev1100) 나와 return Boolean.valueOf(!EgovObjectUtil.isNull(principal));
으로 정상작동합니다
/**
* 인증된 사용자 여부를 체크한다.
* @return Boolean - 인증된 사용자 여부(TRUE / FALSE)
*/
public static Boolean isAuthenticated() {
SecurityContext context = SecurityContextHolder.getContext();
Authentication authentication = context.getAuthentication();
if (EgovObjectUtil.isNull(authentication)) {
// log.debug("## authentication object is null!!");
return Boolean.FALSE;
}
String username = authentication.getName();
if (username.equals("roleAnonymous")) {
// log.debug("## username is " + username);
return Boolean.FALSE;
}
Object principal = authentication.getPrincipal();
return Boolean.valueOf(!EgovObjectUtil.isNull(principal));
}
ie에서 윈도우창 뒤로가기버튼을 클릭 한 후 왜 authentication 변수에 "roleAnonymous" 담기는지 모르겠습니다
뒤로가기버튼을 누를때 DelegatingFilterProxy.class에 doFilter() 메소드를 타는거같은데 너무 어렵습니다
어떻게 처리해야될지 조언 부탁드립니다
사용자 인증에 관련하여 문의 드립니다
로그인 후 메뉴 이동시 아래와 같은 권한을 체크하게 되어있습니다
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
ie에서는 윈도우창 뒤로가기 버튼을 누르고 아무 메뉴 클릭시
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();여기서
isAuthenticated변수에 false가 담깁니다 크롬에서 똑같은 액션을 취했는데 true가 담깁니다
ie일 경우 isAuthenticated() 메소드에서 아래와 같이
String username = authentication.getName(); => username 변수에 roleAnonymous담겨 return Boolean.FALSE;를 합니다
크롬일 경우 username 변수에 로그인 한 아이디(예:dev1100) 나와 return Boolean.valueOf(!EgovObjectUtil.isNull(principal));
으로 정상작동합니다
/**
* 인증된 사용자 여부를 체크한다.
* @return Boolean - 인증된 사용자 여부(TRUE / FALSE)
*/
public static Boolean isAuthenticated() {
SecurityContext context = SecurityContextHolder.getContext();
Authentication authentication = context.getAuthentication();
if (EgovObjectUtil.isNull(authentication)) {
// log.debug("## authentication object is null!!");
return Boolean.FALSE;
}
String username = authentication.getName();
if (username.equals("roleAnonymous")) {
// log.debug("## username is " + username);
return Boolean.FALSE;
}
Object principal = authentication.getPrincipal();
return Boolean.valueOf(!EgovObjectUtil.isNull(principal));
}
ie에서 윈도우창 뒤로가기버튼을 클릭 한 후 왜 authentication 변수에 "roleAnonymous" 담기는지 모르겠습니다
뒤로가기버튼을 누를때 DelegatingFilterProxy.class에 doFilter() 메소드를 타는거같은데 너무 어렵습니다
어떻게 처리해야될지 조언 부탁드립니다
A
안녕하세요. 정민석님.
우선 IE에서 처음에는 정상적으로 로그인되시가다 뒤로가기를 클릭하면 로그아웃된 것 처럼 되시는 것이 맞나요?
아니면 처음부터 로그인이 되지 않으시는 것이 확인이 필요합니다.
두번째 경우라면, cookie에 의해 세션 정보와 정상적으로 매핑되지 않는 경우 같습니다만, 첫번째 경우라면
일반적인 상황은 아니신 것 같습니다.
추가적으로 다른 PC에서 테스트를 해봐 주시고,
IE의 개발자 도구를 통해 뒤로가기 시 별도의 URL이 호출되는 것이 있는지 확인 부탁드립니다.
그럼, 즐거운 하루되십시오.
감사합니다.
우선 IE에서 처음에는 정상적으로 로그인되시가다 뒤로가기를 클릭하면 로그아웃된 것 처럼 되시는 것이 맞나요?
아니면 처음부터 로그인이 되지 않으시는 것이 확인이 필요합니다.
두번째 경우라면, cookie에 의해 세션 정보와 정상적으로 매핑되지 않는 경우 같습니다만, 첫번째 경우라면
일반적인 상황은 아니신 것 같습니다.
추가적으로 다른 PC에서 테스트를 해봐 주시고,
IE의 개발자 도구를 통해 뒤로가기 시 별도의 URL이 호출되는 것이 있는지 확인 부탁드립니다.
그럼, 즐거운 하루되십시오.
감사합니다.