Shiro框架默认认证失败后会返回到登录页面,在前后端分离项目中,需要返回JSON数据,以便前端或者app端解析处理。

实现方式:

1. 扩展shiro框架的UserFilter类,重写redirectToLogin方法。

public class ShiroUserFilter extends UserFilter {

    @Override
protected void redirectToLogin(ServletRequest request, ServletResponse response) throws IOException {
// super.redirectToLogin(request, response);
response.setContentType("application/json; charset=utf-8");
//返回json
response.getWriter().write(JSON.toJSONString(AjaxResult.error(401, "用户未登录,请先登录")));
}
}

2. 在Shiro 的ShiroFilterFactoryBean中加入filter,同时去掉登录地址的配置

// 不需要设置登录地址
//shiroFilterFactoryBean.setLoginUrl(loginUrl); filters.put("authc", new ShiroUserFilter()); filterChainDefinitionMap.put("/**", "authc,user,onlineSession,syncOnlineSession");

Shiro 认证失败返回JSON的更多相关文章

  1. shiro异步请求返回JSON响应

    shiro异步请求返回JSON响应 需求1:当shiro请求资源,但是没有进行认证时,默认是进行重定向,现在需要返回JSON响应.注意异步请求,服务器重定向后,ajax拿到的是浏览器重定向后的到的页面 ...

  2. SpringBoot+SpringSecurity+Thymeleaf认证失败返回错误信息踩坑记录

    Spring boot +Spring Security + Thymeleaf认证失败返回错误信息踩坑记录 步入8102年,现在企业开发追求快速,Springboot以多种优秀特性引领潮流,在众多使 ...

  3. 【转】ASP.NET Core WebAPI JWT Bearer 认证失败返回自定义数据 Json

    应用场景:当前我们给微信小程序提供服务接口,接口中使用了权限认证这一块,当我使用 JWT Bearer 进行接口权限认证的时候,返回的结果不是我们客户端想要的,其它我们想要给客户端返回统一的数据结构, ...

  4. Spring boot +Spring Security + Thymeleaf 认证失败返回错误信息

    [Please make sure to select the branch corresponding to the version of Thymeleaf you are using] Stat ...

  5. Shiro认证的另一种方式

    今天在学习shiro的时候使用另一种shiro验证的方式. 总体的思路是: (1)先在自己的方法中进行身份的验证以及给出提示信息.(前提是将自己的验证方法设为匿名可访问) (2)当验证成功之后到Shi ...

  6. shiro 返回json字符串 + 自定义filter

    前言: 在前后端分离的项目中, 在使用shiro的时候, 我们绝大部分时候, 并不想让浏览器跳转到那个页面去, 而是告诉前端, 你没有登录, 或者没有访问权限. 那这时候, 我们就需要返回json字符 ...

  7. 无状态shiro认证组件(禁用默认session)

    准备内容 简单的shiro无状态认证 无状态认证拦截器 import com.hjzgg.stateless.shiroSimpleWeb.Constants; import com.hjzgg.st ...

  8. Apache Shiro 使用手册(二)Shiro 认证

    认证就是验证用户身份的过程.在认证过程中,用户需要提交实体信息(Principals)和凭据信息(Credentials)以检验用户是否合法.最常见的"实体/凭证"组合便是&quo ...

  9. Apache Shiro 认证过程

    3.1.1    示例 Shiro验证Subjects 的过程中,可以分解成三个不同的步骤: 1. 收集Subjects 提交的Principals(身份)和Credentials(凭证): 2. 提 ...

随机推荐

  1. jtds链接SqlServer数据库(整合)

    先前使用的时候没做汇总,现在结合遇到的问题总结下. 开始使用jdbc驱动配置调用SqlServer不合适,根据网上的资料修改成了jtds配置方式. 当时使用的maven配置,配置如下: <spa ...

  2. 监控目前所有连接SQL SERVER的用户信息

    原文:监控目前所有连接SQL SERVER的用户信息 if object_id('p_getlinkinfo','P')is not null drop proc p_getlinkinfo go c ...

  3. Visio中汇总两个箭头

    RT,相似度和信任度矩阵融合,两个箭头,选中其中一个,可以选格式--线条--终点选无,或者在快捷那选线条.

  4. DATASNAP数据提交之FIREDAC的TFDJSONDeltas

    DATASNAP数据提交之FIREDAC的TFDJSONDeltas FIREDAC的TFDJSONDeltas相当于CLIENTDATASET的DELTA,是作为CLIENTDATASET.DELT ...

  5. js延时函数setTimeout

    实现一个延时执行的效果,现记录如下: <html> <head> <script type="text/javascript" src="/ ...

  6. oc的插件

    umbra https://umbra3d.com/ 很不错

  7. nginx简单实现反向代理和静态资源服务器

    1修改hosts文件 127.0.0.1 www.test1.com 127.0.0.1 www.test2.com 127.0.0.1 static.com 2配置tomcat的server.xml ...

  8. 2017.3.31 spring mvc教程(三)拦截器

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  9. [Tips + Javascript] Make a unique array

    To make an array uniqued, we can use Set() from Javascript. const ary = ["a", "b" ...

  10. JAVA经常使用集合框架使用方法具体解释基础篇二之Colletion子接口List

    接着上一篇,接着讲讲集合的知识.上一篇讲了Collection接口.它能够说是集合的祖先了,我们这一篇就说说它的子孙们. 一.Collection的子接口 List:有序(存入和取出的顺序一致).元素 ...