ApplicationListener 재질문드립니다.
- 작성자 :
- 김*중
- 작성일 :
- 2013-08-08 18:34:24
- 조회수 :
- 2,091
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
예전에 아래와 같이 질문을 드렸었습니다.
잘 이해가 가지 않네요..
아래와 같은 클래스도 없는 것 같구요..
org.springframework.security.web.session.HttpSessionEventPublisher
다시한번만 설명 부탁드립니다.
----------------------------------------------------------------------------------
질문내용 :
/j_spring_security_check 를 이용해서 로그인을 처리하고 있습니다.
로그인을 하고 로그인이 완료 되었다.
로그인이 실패 했다를 알 수 있는 메서드가 없을까요?
중간에 핸들러를 컨트롤 해야 하는 상황입니다.
로그인을 하면
타사의 SNS라이브러 때문에 쿠키를 생성해 줘야 하는데요.
로그인 시도 -> 로그인 성공유무 -> 로그인완료
위와 같은 프로세스중 로그인 시도를 하고 로그인 성공유무를 묻는
부분에 소스를 추가하고 싶습니다.
가능할까요??
답변내용 :
안녕하세요.. 김현중님..
Authentication success handler를 사용하시면 되실 것 같습니다.
web.xml 상에 다음 listener 추가
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
org.springframework.context.ApplicationListener 구현 및 bean 등록..
public void onApplicationEvent(ApplicationEvent event) 메소드에서..AuthenticationSuccessEvent event에 대한 처리 추가...
ex)
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof AuthenticationSuccessEvent) {
AuthenticationSuccessEvent success = (AuthenticationSuccessEvent) event;
Authentication auth = success.getAuthentication();
}
}
그럼.. 즐거운 하루되십시오.
감사합니다.
잘 이해가 가지 않네요..
아래와 같은 클래스도 없는 것 같구요..
org.springframework.security.web.session.HttpSessionEventPublisher
다시한번만 설명 부탁드립니다.
----------------------------------------------------------------------------------
질문내용 :
/j_spring_security_check 를 이용해서 로그인을 처리하고 있습니다.
로그인을 하고 로그인이 완료 되었다.
로그인이 실패 했다를 알 수 있는 메서드가 없을까요?
중간에 핸들러를 컨트롤 해야 하는 상황입니다.
로그인을 하면
타사의 SNS라이브러 때문에 쿠키를 생성해 줘야 하는데요.
로그인 시도 -> 로그인 성공유무 -> 로그인완료
위와 같은 프로세스중 로그인 시도를 하고 로그인 성공유무를 묻는
부분에 소스를 추가하고 싶습니다.
가능할까요??
답변내용 :
안녕하세요.. 김현중님..
Authentication success handler를 사용하시면 되실 것 같습니다.
web.xml 상에 다음 listener 추가
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
org.springframework.context.ApplicationListener 구현 및 bean 등록..
public void onApplicationEvent(ApplicationEvent event) 메소드에서..AuthenticationSuccessEvent event에 대한 처리 추가...
ex)
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof AuthenticationSuccessEvent) {
AuthenticationSuccessEvent success = (AuthenticationSuccessEvent) event;
Authentication auth = success.getAuthentication();
}
}
그럼.. 즐거운 하루되십시오.
감사합니다.
A
안녕하세요. 김현중님.
우선 HttpSessionEventPublisher의 패키지 명을 잘못 기재하였습니다.
org.springframework.security.ui.session.HttpSessionEventPublisher 입니다.
ApplicationListener를 구현한 bean을 등록을 하게 되면 ApplicationContext에 일어나는 다양한 이벤트에 대하여 특정 처리를 추가하실 수 있습니다.
그 중에 AuthenticationSuccessEvent 이벤트의 경우는 Spring Security에 의해 인증이 성공된 경우 처리가 되기 때문에, 이 이벤트가 발생된 경우 특정 로직(SNS 연동 등)을 추가해 넣으실 수 있습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
우선 HttpSessionEventPublisher의 패키지 명을 잘못 기재하였습니다.
org.springframework.security.ui.session.HttpSessionEventPublisher 입니다.
ApplicationListener를 구현한 bean을 등록을 하게 되면 ApplicationContext에 일어나는 다양한 이벤트에 대하여 특정 처리를 추가하실 수 있습니다.
그 중에 AuthenticationSuccessEvent 이벤트의 경우는 Spring Security에 의해 인증이 성공된 경우 처리가 되기 때문에, 이 이벤트가 발생된 경우 특정 로직(SNS 연동 등)을 추가해 넣으실 수 있습니다.
그럼, 즐거운 하루되십시오.
감사합니다.