package com.doumee.config.shiro; import com.alibaba.fastjson.JSON; import com.doumee.core.model.ApiResponse; import org.apache.shiro.web.filter.authc.FormAuthenticationFilter; import org.springframework.http.HttpStatus; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; /** * Shiro认证过滤器,处理未认证情况的响应 * @author Eva.Caesar Liu * @date 2023/04/17 12:11 */ public class ShiroAuthFilter extends FormAuthenticationFilter { public ShiroAuthFilter() { super(); } @Override protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception { HttpServletResponse servletResponse = (HttpServletResponse) response; servletResponse.setHeader("content-type", "application/json;charset=UTF-8"); servletResponse.getWriter().write(JSON.toJSONString(ApiResponse.failed(HttpStatus.UNAUTHORIZED.value(), "未登录或登录信息已过期"))); return Boolean.FALSE; } }