|
|
@@ -446,7 +446,7 @@ public class SecurityController {
|
|
|
*/
|
|
|
@RequestMapping(value = "/logout/crossBefore")
|
|
|
@ResponseBody
|
|
|
- public ModelMap getCrossLogoutData(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
|
+ public ModelMap getCrossLogoutData(HttpServletRequest request, HttpServletResponse response, String returnUrl) throws IOException {
|
|
|
SSOHelper.clearLogin(request, response);
|
|
|
ModelMap model = new ModelMap();
|
|
|
SSOConfig config = SSOHelper.getSSOService().getConfig();
|
|
|
@@ -457,7 +457,11 @@ public class SecurityController {
|
|
|
Object logoutUrl = null;
|
|
|
boolean cross = SSOHelper.isCrossDomain(request);
|
|
|
if (cross) {
|
|
|
- logoutUrl = SSOHelper.getRedirectRefererLogoutUrl(request);
|
|
|
+ if (StringUtils.isEmpty(returnUrl)) {
|
|
|
+ logoutUrl = SSOHelper.getRedirectRefererLogoutUrl(request);
|
|
|
+ } else {
|
|
|
+ logoutUrl = SSOHelper.getRedirectLogoutUrl(request, returnUrl);
|
|
|
+ }
|
|
|
} else {
|
|
|
logoutUrl = SSOHelper.getRedirectLogoutUrl(request, String.valueOf(request.getSession().getAttribute("SSOReferer")));
|
|
|
}
|