博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
改写源代码,使得认证成功后跳转到successUrl路径
阅读量:7083 次
发布时间:2019-06-28

本文共 2918 字,大约阅读时间需要 9 分钟。

hot3.png

package com.sniper.shiro.security.web.interceptor;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang.StringUtils;import org.apache.shiro.authc.AuthenticationToken;import org.apache.shiro.subject.Subject;import org.apache.shiro.web.filter.AccessControlFilter;import org.apache.shiro.web.filter.authc.AuthenticationFilter;import org.apache.shiro.web.filter.authc.FormAuthenticationFilter;import org.apache.shiro.web.util.SavedRequest;import org.apache.shiro.web.util.WebUtils;public class MyFormAuthenticationFilter extends FormAuthenticationFilter {        /**     * 改写源代码,使得认证成功后跳转到successUrl路径     */    @Override    protected boolean onLoginSuccess(AuthenticationToken token,            Subject subject, ServletRequest request, ServletResponse response)            throws Exception {        //return super.onLoginSuccess(token, subject, request, response);                String fallbackUrl = this.getSuccessUrl();                String successUrl = null;        boolean contextRelative = true;        SavedRequest savedRequest = WebUtils.getAndClearSavedRequest(request);        if (savedRequest != null && savedRequest.getMethod().equalsIgnoreCase(AccessControlFilter.GET_METHOD)) {            successUrl = savedRequest.getRequestUrl();            contextRelative = false;        }        if(!StringUtils.isEmpty(fallbackUrl) && !AuthenticationFilter.DEFAULT_SUCCESS_URL.equals(fallbackUrl)) {            successUrl = ((HttpServletRequest)request).getContextPath() + fallbackUrl;        }                if (successUrl == null) {            successUrl = this.getSuccessUrl();        }        if (successUrl == null) {            throw new IllegalStateException("Success URL not available via saved request or via the " +                    "successUrlFallback method parameter. One of these must be non-null for " +                    "issueSuccessRedirect() to work.");        }        WebUtils.issueRedirect(request, response, successUrl, null, contextRelative);                return false;    }    }

        
    
        
                
            
                
            
                        
        
                
        
                
        
            
                
                /login.jsp = anon                                /refuse.jsp = anon                
                /images/** = anon                /js/** = anon                
                /logout.do = logout                
                /** = authc            
                    
        
            
    
        
        
            
        
            
    
        
        
        

转载于:https://my.oschina.net/sniperLi/blog/650645

你可能感兴趣的文章
常用的端口配置
查看>>
Spark学习之路 (十四)SparkCore的调优之资源调优JVM的GC垃圾收集器
查看>>
getprop 获取android系统属性
查看>>
数组-冒泡排列
查看>>
PHP - 模拟HTTP请求, stream_context_create 和 fopen 和 fsockopen
查看>>
14种网页图片和文字特效的jQuery插件代码
查看>>
Python入门篇-返回值和作用域
查看>>
从零开始编写自己的C#框架(16)——Web层后端父类
查看>>
线性方程组之迭代法篇
查看>>
洛谷P1118 [USACO06FEB]数字三角形 搜索
查看>>
你好,C++(32) 类是对现实世界的抽象和描述 6.2.1 类的声明和定义
查看>>
3年度研发项目情况项目目标文档
查看>>
JS-十五章(15.16)
查看>>
[Android Pro] DES加密 version1
查看>>
Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete'...
查看>>
前端之css
查看>>
前端之float的几种清除浮动方式
查看>>
Python 实践--混入类
查看>>
如何检测 Android Cursor 泄漏
查看>>
NTP时间服务器
查看>>