shiro修改没有登录或者session失效,根据ajax返回json
转载地址:https://blog.csdn.net/football98/article/details/76660920
当使用shiro框架,进行权限控制时,没有登录或者session失效,进行ajax请求时,不会跳转会登录页面,仅仅不返回正确结果。
因此,需要解决对ajax请求进行特殊处理。
1、重新FormAuthenticationFilter类onAccessDenied方法。让其根据不同的请假方式,返回不同的结果。
- import org.apache.shiro.web.filter.authc.FormAuthenticationFilter;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServletRequest;
- import java.io.PrintWriter;
- public class ShiroFormAuthenticationFilter extends FormAuthenticationFilter {
- @Override
- protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
- if( this.isLoginRequest(request, response)) {
- if( this.isLoginSubmission(request, response)) {
- return this.executeLogin(request, response);
- } else {
- return true;
- }
- } else {
- String header = ((HttpServletRequest) request).getHeader( "Content-Type");
- if(header != null && header.equals( "application/x-www-form-urlencoded")){
- response.setCharacterEncoding( "UTF-8");
- PrintWriter out = response.getWriter();
- out.print( "{\"isOver\" : true }");
- out.flush();
- out.close();
- } else{
- this.saveRequestAndRedirectToLogin(request, response);
- }
- return false;
- }
- }
- }
-
-
-
-
- /components/** = anon
- /css/** = anon
- /images/** = anon
- /lib/** = anon
- /LoginController.js = anon
- /loginController/login.do = anon
- /** = authc
- /**
- * 封装post请求
- * @param url
- * @param data
- * @param callback
- */
- var commPost = function (url,data,callback) {
- $http({
- method: 'POST',
- url:baseUrl+url,
- data : data
- }).then( function(result) {
- if(result.data.isOver != undefined && result.data.isOver){
- //跳转页面
- window.location.href = https://www.it610.com/article/baseUrl+"pages/common/login/login.html";
- } else{
- callback(result.data);
- }
- });
- };
【shiro修改没有登录或者session失效,根据ajax返回json】
推荐阅读
- 死结。
- 洱海不是海,,人群没有你
- 哪有什么忘记,又没有失忆,放下罢了
- 日子有毒,且没有解药
- 没有脚的鸟
- 《低风险创业》樊登
- 凡有的,还要多给他,凡没有的,连他现有的也要拿走
- 先放下|先放下 ,求一个好心情
- 抱怨并没有任何意义
- 作业没有完成仍坚持要开家庭会议|作业没有完成仍坚持要开家庭会议 44