package org.broadleafcommerce.core.web.social; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.broadleafcommerce.common.security.MergeCartProcessor; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.authentication.RememberMeServices; import org.springframework.social.connect.Connection; import org.springframework.web.context.request.NativeWebRequest; public class BroadleafSocialSignInAdapterEx extends BroadleafSocialSignInAdapter { private String postSignInUrl; @Resource(name = "blMergeCartProcessor") protected MergeCartProcessor mergeCartProcessor; @Resource(name="blcRememberMeService") protected RememberMeServices rememberMeServices; public String signIn(String username, Connection<?> connection, NativeWebRequest request) { String s = super.signIn(username, connection, request); // TODO resp null? mergeCartProcessor.execute( request.getNativeRequest(HttpServletRequest.class), null, SecurityContextHolder.getContext().getAuthentication()); // this is a hack //rememberMe HttpServletRequest httpRequest=(HttpServletRequest)request.getNativeRequest(); HttpServletResponse httpResponse=(HttpServletResponse)request.getNativeResponse(); rememberMeServices.loginSuccess(httpRequest,httpResponse,SecurityContextHolder.getContext().getAuthentication()); String referer = request.getHeader("Referer"); if (referer != null && referer.indexOf("termtype=app") > 0) return postSignInUrl; return s; } public String getPostSignInUrl() { return postSignInUrl; } public void setPostSignInUrl(String postSignInUrl) { this.postSignInUrl = postSignInUrl; } }