zoukankan      html  css  js  c++  java
  • Shiro 认证失败返回JSON

    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");
    
  • 相关阅读:
    那些好的句子
    ❤️博客使用说明-飞沙
    求n以内,除5的倍数的和
    C# 枚举
    2021年bilibili程序员节日
    MT管理器使用技巧
    腾讯找人工客服
    校报白皮书
    C语言教程(下)
    svn版本控制
  • 原文地址:https://www.cnblogs.com/csts/p/11038454.html
Copyright © 2011-2022 走看看