인증(로그인)을 중복(2번) 처리하는것으로 보이는데, 실제로 그러한가요?
- 작성자 :
- 김*욱
- 작성일 :
- 2021-04-16 17:02:41
- 조회수 :
- 4,263
- 구분 :
- 공통컴포넌트 / 3.5
- 진행상태 :
- 완료
Q
안녕하세요
인증(로그인)과 관련하여 궁금한것이 있어 질문드립니다
스프링에서 제공하는 인증과 별도의 인증을 함께 사용하여,
두번의 인증을 거치는것 처럼 보이는데, 실제로 그러한가요?
(1) 스프링 인증
이하 egovframework.com.cmm.config 패키지의 EgovWebApplicationInitializer 클래스의 내용입니다
Spring Security를 동작하도록 아래와 같이 스프링에서 제공하는 "springSecurityFilterChain" 필터를 등록하고 있습니다
해당 "springSecurityFilterChain" 체인필터는 <<인증에 관련한 처리>>를 모두 하는것으로 알고있습니다
100라인:
//-------------------------------------------------------------
// springSecurityFilterChain 설정
//-------------------------------------------------------------
FilterRegistration.Dynamic springSecurityFilterChain = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());
(2) 별도 인증
그런데, 동일 파일내 좀 더 아래에 보면 <<인증(로그인)>>을 처리하는 또 다른 필터를 등록하고 있습니다
112라인:
//-------------------------------------------------------------
// EgovSpringSecurityLoginFilter 설정
//-------------------------------------------------------------
FilterRegistration.Dynamic egovSpringSecurityLoginFilter = servletContext.addFilter("egovSpringSecurityLoginFilter", new EgovSpringSecurityLoginFilter());
해당 필터(EgovSpringSecurityLoginFilter) 클래스를 보면 주석이나 코드를 보더라도 다시금 인증을 처리하고 있어 보입니다
//------------------------------------------------------------------
// 사용자 로그인 처리
//------------------------------------------------------------------
try {
//사용자 입력 id, password로 DB 인증을 실행함
loginVO = loginService.actionLogin(loginVO);
질문을 다시 정리하면
스프링에서 제공하는 인증과 관련한 필터체인을 등록했다면 그것을 충분히 활용하면 될것 같은데
또 다른 인증 필터를 추가하여, 그렇게 두번의 인증을 처리하는 이유가 무엇인가요?
인증(로그인)과 관련하여 궁금한것이 있어 질문드립니다
스프링에서 제공하는 인증과 별도의 인증을 함께 사용하여,
두번의 인증을 거치는것 처럼 보이는데, 실제로 그러한가요?
(1) 스프링 인증
이하 egovframework.com.cmm.config 패키지의 EgovWebApplicationInitializer 클래스의 내용입니다
Spring Security를 동작하도록 아래와 같이 스프링에서 제공하는 "springSecurityFilterChain" 필터를 등록하고 있습니다
해당 "springSecurityFilterChain" 체인필터는 <<인증에 관련한 처리>>를 모두 하는것으로 알고있습니다
100라인:
//-------------------------------------------------------------
// springSecurityFilterChain 설정
//-------------------------------------------------------------
FilterRegistration.Dynamic springSecurityFilterChain = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());
(2) 별도 인증
그런데, 동일 파일내 좀 더 아래에 보면 <<인증(로그인)>>을 처리하는 또 다른 필터를 등록하고 있습니다
112라인:
//-------------------------------------------------------------
// EgovSpringSecurityLoginFilter 설정
//-------------------------------------------------------------
FilterRegistration.Dynamic egovSpringSecurityLoginFilter = servletContext.addFilter("egovSpringSecurityLoginFilter", new EgovSpringSecurityLoginFilter());
해당 필터(EgovSpringSecurityLoginFilter) 클래스를 보면 주석이나 코드를 보더라도 다시금 인증을 처리하고 있어 보입니다
//------------------------------------------------------------------
// 사용자 로그인 처리
//------------------------------------------------------------------
try {
//사용자 입력 id, password로 DB 인증을 실행함
loginVO = loginService.actionLogin(loginVO);
질문을 다시 정리하면
스프링에서 제공하는 인증과 관련한 필터체인을 등록했다면 그것을 충분히 활용하면 될것 같은데
또 다른 인증 필터를 추가하여, 그렇게 두번의 인증을 처리하는 이유가 무엇인가요?
환경정보
-
- OS 정보 :
- 표준프레임워크 버전 : 3.8
- JDK(JRE) 정보 :
- WAS 정보 :
- DB 정보 :
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
(1)과 (2)로 나뉘어 있는것은
표준프레임워크 시큐리티 간소화와 스프링 시큐리티의 아키텍처가
인증(Authentication)과 인가(Authorization)로 구분되어 있기 때문입니다.
앞에 (1)번 부분은 인가(Authorization)와 관련된 부분으로
접근에 대해 권한이 있는지 확인한다고 보시면 됩니다.
(2)에 대한 부분은 인증(Authentication)을 처리하는 부분으로
간단히 말씀 드리면 로그인/로그아웃을 처리하게 됩니다.
참고로 시큐리티 간소화 서비스는
다음 위키가이드에서
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3.10
다음 부분을 참고하시면 됩니다.
Server Security
- Architecture
- Authentication
- Authorization
- 설정 간소화
감사합니다.
표준프레임워크센터입니다.
(1)과 (2)로 나뉘어 있는것은
표준프레임워크 시큐리티 간소화와 스프링 시큐리티의 아키텍처가
인증(Authentication)과 인가(Authorization)로 구분되어 있기 때문입니다.
앞에 (1)번 부분은 인가(Authorization)와 관련된 부분으로
접근에 대해 권한이 있는지 확인한다고 보시면 됩니다.
(2)에 대한 부분은 인증(Authentication)을 처리하는 부분으로
간단히 말씀 드리면 로그인/로그아웃을 처리하게 됩니다.
참고로 시큐리티 간소화 서비스는
다음 위키가이드에서
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3.10
다음 부분을 참고하시면 됩니다.
Server Security
- Architecture
- Authentication
- Authorization
- 설정 간소화
감사합니다.