diff --git a/modules/core/src/main/java/com/jeesite/common/shiro/filter/PermissionsAuthorizationFilter.java b/modules/core/src/main/java/com/jeesite/common/shiro/filter/PermissionsAuthorizationFilter.java index 30fe8547..fd8f435e 100644 --- a/modules/core/src/main/java/com/jeesite/common/shiro/filter/PermissionsAuthorizationFilter.java +++ b/modules/core/src/main/java/com/jeesite/common/shiro/filter/PermissionsAuthorizationFilter.java @@ -15,6 +15,7 @@ import org.apache.shiro.authz.UnauthorizedException; import org.apache.shiro.subject.Subject; import org.apache.shiro.web.util.WebUtils; +import com.jeesite.common.codec.EncodeUtils; import com.jeesite.common.config.Global; import com.jeesite.common.lang.StringUtils; import com.jeesite.common.web.http.ServletUtils; @@ -88,6 +89,12 @@ public class PermissionsAuthorizationFilter extends org.apache.shiro.web.filter. e.printStackTrace(); } }else{ + loginUrl += StringUtils.contains(loginUrl, "?") ? "&" : "?"; + StringBuilder requestUrl = new StringBuilder(req.getRequestURL()); + if (req.getQueryString() != null) { + requestUrl.append("?").append(req.getQueryString()); + } + loginUrl += "__url=" + EncodeUtils.encodeUrl(requestUrl.toString()); WebUtils.issueRedirect(request, response, loginUrl); } }