基于角色得后台权限管理系统设计(四、spring security 之处理器(详解)

从上一篇文章我们可以知道spring security 中有一整套的过滤器链对一个请求进行层层过滤。而开发者所需要做的就是配置这些过滤器的规则。那么这些过滤器内置了过滤规则之后该如何进行相应的处理呢?

虽然spring security内部都有了默认处理。但是最让人心慌的却是,你不知道他怎么处理了,或者你想自定义处理逻辑的时候,不知道该如何下手。那么spring security当然也想到了这些问题。

那就让我们看看我们该如何处理这些问题

如果大家有看我的之前的文章,一定留意到代码中有一段这样的代码


        AuthenticationSuccessHandler handler=new AuthenticationSuccessHandler() {
            @Override
            public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {
                httpServletResponse.sendRedirect(httpServletRequest.getContextPath()+"/index");
            }
        };

看名字 AuthenticationSuccessHandler  ,是的没错,你马上就能按字面意思翻译过来,认证成功处理器。

我们这里实现了onAuthenticationSuccess 这个方法。当认证成功的时候会走这个方法中的逻辑。

那么我们来列举写spring security中的处理器都有哪些,都能做什么用

1.AuthenticationSuccessHandler 登入成功处理器,登入成功时的操作,是要重定向还是返回json还是返回权限菜单等

2.AccessDeniedHandler 鉴权失败处理器,当没有权限访问某个资源的时候的处理逻辑

3.LogoutSuccessHandler 登出成功处理器,登出成功的时候怎么操作,例如重定向还是不处理还是返回json

4.AuthenticationFailureHandler 登入失败处理器,当登入失败的时候要做什么,重定向到登入页面还是,返回json等

如果有需要更多的了解可以直接去看看包内都有哪些一Handler 结尾的接口或者类就知道了。

以上四个为接口,内部都有对应的实现,那么你如果要自定义处理,只需实现以上接口即可,也可以继承自相关的实现类

然后在http中指定相关处理器就可以了像这样:

@AutoWire
MyAuthenticationSuccessHandler handler;//自定义处理器

-----此处省略
http.formLogin().successHandler(handler) //可以处理登陆成功事件
               
-----此处省略

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值