로그인 권한 질문
- 작성자 :
- 손*형
- 작성일 :
- 2020-09-15 13:19:57
- 조회수 :
- 3,817
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
글이 등록되었다고 alert가 떳는데
글이 안올라간것 같아서 다시 올립니다.
현재 jdk1.6 전자정부프레임워크 3.1버전 입니다.
우선 spring security로 로그인 로직이 있는 상태에서
OAuth2.0 카카오, 네이버 로그인을 추가 중입니다.
그중 카카오 로그인을 먼저 개발중입니다.
카카오 로그인을 통해 필요한 데이터를 다 받아온 상태에서
spring security를 통해 로그인 처리만 해주면 되는 상태입니다.
그래서 카카오 로그인 로직 제일 마지막에
UsernamePasswordAuthenticationFilter springSecurity = null;
ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
@SuppressWarnings("rawtypes")
Map beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class);
if (beans.size() > 0) {
springSecurity = (UsernamePasswordAuthenticationFilter)beans.values().toArray()[0];
} else {
throw new IllegalStateException("No AuthenticationProcessingFilter");
}
springSecurity.setContinueChainBeforeSuccessfulAuthentication(false); // false 이면 chain 처리 되지 않음.. (filter가 아닌 경우 false로...)
springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getAuthUserID(), resultVO.getEsntlId()), response, null);
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(isAuthenticated.booleanValue()) {
//패스워드삽입 제외
resultVO.setPassword(null);
request.getSession().setAttribute("LoginVO", resultVO);
}
이 로직을 추가했습니다.
하지만
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
isAuthenticated 값이 false를 반환하더군요.
isAuthenticated() 내부적으로
Authentication authentication = context.getAuthentication();
authentication 가 null을 반환합니다.
HttpServletRequestWrapper extends한 class에서
override한 getRequestURI(), getParameter(String name)를 정상적으로 동작하지도 않습니다.
context-security에서 설정을 어떻게든 해야할것같긴한데 도저히 모르겠어서 질문 남깁니다.
조언 부탁드립니다.
글이 안올라간것 같아서 다시 올립니다.
현재 jdk1.6 전자정부프레임워크 3.1버전 입니다.
우선 spring security로 로그인 로직이 있는 상태에서
OAuth2.0 카카오, 네이버 로그인을 추가 중입니다.
그중 카카오 로그인을 먼저 개발중입니다.
카카오 로그인을 통해 필요한 데이터를 다 받아온 상태에서
spring security를 통해 로그인 처리만 해주면 되는 상태입니다.
그래서 카카오 로그인 로직 제일 마지막에
UsernamePasswordAuthenticationFilter springSecurity = null;
ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
@SuppressWarnings("rawtypes")
Map beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class);
if (beans.size() > 0) {
springSecurity = (UsernamePasswordAuthenticationFilter)beans.values().toArray()[0];
} else {
throw new IllegalStateException("No AuthenticationProcessingFilter");
}
springSecurity.setContinueChainBeforeSuccessfulAuthentication(false); // false 이면 chain 처리 되지 않음.. (filter가 아닌 경우 false로...)
springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getAuthUserID(), resultVO.getEsntlId()), response, null);
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(isAuthenticated.booleanValue()) {
//패스워드삽입 제외
resultVO.setPassword(null);
request.getSession().setAttribute("LoginVO", resultVO);
}
이 로직을 추가했습니다.
하지만
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
isAuthenticated 값이 false를 반환하더군요.
isAuthenticated() 내부적으로
Authentication authentication = context.getAuthentication();
authentication 가 null을 반환합니다.
HttpServletRequestWrapper extends한 class에서
override한 getRequestURI(), getParameter(String name)를 정상적으로 동작하지도 않습니다.
context-security에서 설정을 어떻게든 해야할것같긴한데 도저히 모르겠어서 질문 남깁니다.
조언 부탁드립니다.
A
안녕하세요.
표준프레임워크센터 입니다.
카카오 혹은 네이버 로그인후
기존 로그인체계에 연결하는
커스텀 작업을 하시는 것으로 이해가 됩니다.
이렇한 커스텀 작업은 다양한 조건과 결과가 있을수 있기 때문에
가이드 해드리기 어렵습니다.
다움 실행환경 가이드에서
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rtea3.9
다음 부분을 참조 하셔서 커스텀 작업을 진행하셔야 할듯 합니다.
- Architecture
- Authentication
- Authorization
- 설정 간소화
시큐리티 모드에서 실제 로그인 되는 부분으로
참고 하시기 바랍니다.
/src/main/java/egovframework/com/sec/security/filter/EgovSpringSecurityLoginFilter.java
보안적인 측면에서 문제가 될 소지도 있을듯 하여
상당히 신중하게 작업이 필요할것으로 보입니다.
감사합니다.
표준프레임워크센터 입니다.
카카오 혹은 네이버 로그인후
기존 로그인체계에 연결하는
커스텀 작업을 하시는 것으로 이해가 됩니다.
이렇한 커스텀 작업은 다양한 조건과 결과가 있을수 있기 때문에
가이드 해드리기 어렵습니다.
다움 실행환경 가이드에서
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rtea3.9
다음 부분을 참조 하셔서 커스텀 작업을 진행하셔야 할듯 합니다.
- Architecture
- Authentication
- Authorization
- 설정 간소화
시큐리티 모드에서 실제 로그인 되는 부분으로
참고 하시기 바랍니다.
/src/main/java/egovframework/com/sec/security/filter/EgovSpringSecurityLoginFilter.java
보안적인 측면에서 문제가 될 소지도 있을듯 하여
상당히 신중하게 작업이 필요할것으로 보입니다.
감사합니다.