当前位置: 首页 > news >正文

Shiro重定向

使用了统一认证,然后每次登录,不能定向到用户指定的界面,非得回到首页,所以做了如下改动

1、在FormAuthenticationFilter中在issueSuccessRedirect中加上五句话。

@Overrideprotected void issueSuccessRedirect(ServletRequest request,ServletResponse response) throws Exception {Principal p = UserUtils.getPrincipal();if (p != null && !p.isMobileLogin()){String url = "";if(WebUtils.getSavedRequest(request).getRequestUrl()!=null){url = WebUtils.getSavedRequest(request).getRequestUrl();	}else{url = getSuccessUrl();}//getSuccessUrl()WebUtils.issueRedirect(request, response, url, null, true);}else{//super.issueSuccessRedirect(request, response);//手机登录AjaxJson j = new AjaxJson();j.setSuccess(true);j.setMsg("登录成功!");j.put("username", p.getLoginName());j.put("name", p.getName());j.put("mobileLogin", p.isMobileLogin());j.put("JSESSIONID", p.getSessionid());PrintJSON.write((HttpServletResponse)response, j.getJsonStr());}}

其中主要是用到了

String url = "";
if(WebUtils.getSavedRequest(request).getRequestUrl()!=null){url = WebUtils.getSavedRequest(request).getRequestUrl();	
}else{url = getSuccessUrl();
}

到WebUtils.getSavedRequest(request).getRequestUrl(); 里面看看是否有存好的重定向url,否则采用默认的home也就是getSuccessUrl()

WebUtils是spring自带的工具类,它会自己存好访问的url。没太仔细研究怎么弄的,管用就好了。

其实在controll里的httpservletrequest类型的request变量里能找到url。但是他是包在UTIConverter中,层层转包,往外取很麻烦,关键是层层转包的类型转化不太会弄。使用上面那个简单多了。

http://www.lryc.cn/news/58568.html

相关文章:

  • Greenplum数据库执行器——PartitionSelector执行节点
  • POJ 2311 Cutting Game
  • CTF-PHP反序列化漏洞1-基础知识
  • 【面试】记一次安恒面试及总结
  • 刹车制动(卡钳)TOP3供应商份额超50%,哪些本土供应商突围
  • Go分布式爬虫笔记(二十二)
  • 跨线程修改主界面
  • 国内ChatGPt研发-中国chatGPT
  • springboot的rest服务配置服务的根路径
  • MySQL B+Tree 索引优化技巧
  • 100种思维模型之逆向思维模型-46
  • C/C++每日一练(20230413)
  • volatile和synchronized的区别
  • Cadence Allegro 导出Unplaced Component Report报告详解
  • 面试了上百位性能测试后,我发现了一个令人不安的事实...
  • 天气预报查询 API + AI 等于王炸(一大波你未曾设想的天气预报查询 API 应用场景更新了)
  • 跨境电商的行业现状与发展趋势分析
  • 适配器设计模式
  • 代码随想录算法训练营第三十五天-贪心算法4| ● 860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球
  • 2023MathorcupC题电商物流网络包裹应急调运与结构优化问题建模详解+模型代码(一)
  • 软件测试技术之跨平台的移动端UI自动化测试(上)
  • 【MySQL--02】库的操作
  • 人民链Baas服务平台上线,中创助力人民数据共建数据服务应用场景
  • 说说如何借助webpack来优化前端性能?
  • AiDD AI+软件研发数字峰会开启编程新纪元
  • 【远程开发】VSCode使用Remote SSH远程连接Linux服务器
  • C++纯虚函数和抽象类详解
  • 服务器上搭建jenkins打包工具
  • 全球化背景下,如何利用内容营销促进跨境电商业务增长
  • 数据库系统工程师——第二章 程序语言基础知识