Skip to content

Spring-security RememberMeServices (3rd-party SSO, Single Sign On)

License

Notifications You must be signed in to change notification settings

u2ware/spring-security-u2ware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spring-security-u2ware

Installation (POM)

 <repository>
     <id>u2ware-mvm-repo</id>
     <url>https://raw.github.com/u2ware/u2ware.github.com/mvn-repo/</url>
 </repository>

 <dependency>
     <groupId>io.github.u2ware</groupId>
     <artifactId>spring-security-u2ware</artifactId>
     <version>1.5.18.RELEASE</version>
 </dependency>

spring-security-u2warespring-boot-1.5.18.RELEASE , spring-security-4.2.10.RELEASE 기반으로 동작합니다.

RememberMeServices

spring-security 는 Cookie 에 저장된 Token 값을 분석하여 RememberMeServices 를 구현하는 TokenBasedRememberMeServicesPersistentTokenBasedRememberMeServices 를 제공하고 있습니다.

이와 동일한 방식으로 spring-security-u2ware 는 Cookie 대신에 Header 를 이용하여 RememberMeServices 를 구현한 HeaderTokenBasedRememberMeServicesPersistentHeaderTokenBasedRememberMeServices 를 제공합니다.

또한, 3rd-party SSO(Single Sign On) 제품과 연동하여 RememberMeServices 를 구현해야 할 때, AbstractRememberMeServices 를 상속 받아서 구현 할 수 있습니다.

 import org.springframework.security.web.authentication.rememberme.support.AbstractRememberMeServices;

 public class YourSsoRememberMeService extends AbstractRememberMeServices{

     protected YourSsoRememberMeService(String key, UserDetailsService userDetailsService) {
         super(key, userDetailsService);
     }

     @Override
     protected Authentication loadRememberMe(HttpServletRequest request, HttpServletResponse response) {
         // 3rd-party SSO 를 이용하여 로그인 여부를 확인 합니다.
         // String username = ....
         // Authentication auth = super.createAuthentication(request, username);
         // return auth;
         return null;
     }

     @Override
     protected void saveRememberMe(HttpServletRequest request, HttpServletResponse response, Authentication auth) {
         // (필요에 따라) 로그인 성공 정보를 3rd-party SSO 에 전달합니다.
     }

     @Override
     protected void cancelRememberMe(HttpServletRequest request, HttpServletResponse response, Authentication auth) {
         // (필요에 따라) 로그인 실패 또는 로그아웃 정보를 3rd-party SSO 에 전달합니다.
     }
 }

License

spring-security-u2ware is Open Source software released under the Apache 2.0 license.