|
|
@@ -12,10 +12,13 @@ import com.uas.platform.core.util.serializer.FlexJsonUtils;
|
|
|
import com.uas.sso.SSOConfig;
|
|
|
import com.uas.sso.SSOHelper;
|
|
|
import com.uas.sso.SSOToken;
|
|
|
+import com.uas.sso.common.SSOProperties;
|
|
|
+import com.uas.sso.common.util.HttpUtil;
|
|
|
import com.uas.sso.web.spring.AbstractSSOInterceptor;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.log4j.Logger;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.mobile.device.Device;
|
|
|
import org.springframework.mobile.device.DeviceResolver;
|
|
|
@@ -49,6 +52,8 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
|
|
|
private ResourceItemDao resourceItemDao;
|
|
|
@Autowired
|
|
|
private SigninLogService signinLogService;
|
|
|
+ @Value("#{account.sso.return.url ?: null}")
|
|
|
+ private String logReturnUrl;
|
|
|
|
|
|
private final DeviceResolver deviceResolver = new LiteDeviceResolver();
|
|
|
|
|
|
@@ -258,7 +263,12 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
|
|
|
boolean cross = SSOHelper.isCrossDomain(request);
|
|
|
if (cross) {
|
|
|
request.getSession().setAttribute("SSOReferer", request.getRequestURL());
|
|
|
- response.sendRedirect(SSOHelper.getRedirectLoginUrl(request,request.getHeader("Referer")));
|
|
|
+ if (null == logReturnUrl || "".equals(logReturnUrl)){
|
|
|
+ response.sendRedirect(SSOHelper.getRedirectLoginUrl(request, request.getRequestURL().toString()));
|
|
|
+ }else {
|
|
|
+ response.sendRedirect(SSOHelper.getRedirectLoginUrl(request, logReturnUrl+request.getRequestURI()));
|
|
|
+ }
|
|
|
+
|
|
|
} else {
|
|
|
SSOHelper.clearRedirectLogin(request, response);
|
|
|
}
|