域网站名分类,企业年金辞职了怎么办,wordpress中文标签404,wordpress忘记用户名密码登录失败的 JSON 提示 如果失败了#xff0c;默认会跳转到Web工程根目录下的/login.jsp页面#xff0c;可以配置factoryBean.setLoginUrl(“/myLogin”); 认证失败后会跳转到 setLoginUrl 这个方法指定的路径中 FormAuthenticationFilter 是 Shiro 框架中用于处理基于表单的身…登录失败的 JSON 提示 如果失败了默认会跳转到Web工程根目录下的/login.jsp页面可以配置factoryBean.setLoginUrl(“/myLogin”); 认证失败后会跳转到 setLoginUrl 这个方法指定的路径中 FormAuthenticationFilter 是 Shiro 框架中用于处理基于表单的身份验证的过滤器它简化了身份验证的处理流程并提供了灵活的配置选项。 FormAuthenticationFilter 是用于处理基于表单的身份验证的过滤器。当用户提交登录表单时它会拦截请求并 将用户提供的凭证通常是用户名和密码传递给 Shiro 进行身份验证。它会使用配置好的身份验证器如用户名密码验证器对用户凭证进行验证。如果凭证有效Filter 将继续处理请求并将用户身份信息保存在会话中以便后续的访问控制和授权操作。此外它还可以根据配置的跳转 URL将用户重定向到登录成功后的页面。如果凭证无效FormAuthenticationFilter 将根据配置的错误处理方式如重定向到登录页面或返回错误信息给用户。Filter 本身提供了可配置的属性如登录 URL、登录成功 URL、错误 URL 等以便根据应用程序的需求进行自定义设置。
public class MyFormAuthenticationFilter extends FormAuthenticationFilter {
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws
Exception {
HttpServletResponse httpServletResponse (HttpServletResponse) response;
httpServletResponse.setStatus(200);
httpServletResponse.setContentType(application/json;charsetutf-8);
PrintWriter out httpServletResponse.getWriter();
JSONObject json new JSONObject();
json.put(state,403);
json.put(msg,登录已失效请重新登录);
out.println(json);
out.flush();
out.close();
return false;
}
}配置过滤器 将自定义过滤器放入 map 中进行注册如果实现了自定义授权过滤器那就必须在 shiroFilterFactoryBean 中 进行注册否则 Shiro 不会使用自定义的授权过滤器
Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
ShiroFilterFactoryBean factoryBean new ShiroFilterFactoryBean();
factoryBean.setSecurityManager(securityManager);
LinkedHashMapString, Filter map1 new LinkedHashMap();
map1.put(authc, new MyFormAuthenticationFilter());
factoryBean.setFilters(map1); 将过滤器绑定到 shiroFilterFactoryBean 上
MapString, String map new LinkedHashMap();
map.put(/logout, logout);
map.put(/login,anon);
map.put(/**,authc);
factoryBean.setFilterChainDefinitionMap(map);
return factoryBean;
}