Spring Security原理
Spring Security采用的是责任链的设计模式,有一条很长的过滤器链,首先客户端发起一个请求,进入Security过滤器链,然后判断是否为登录,最后根据URI去找对应的鉴权管理器,进行鉴权。
流程图
流程说明
客户端发起一个请求,进入 Security 过滤器链。
当到 LogoutFilter 的时候判断是否是登出路径,如果是登出路径则到 logoutHandler ,如果登出成功则到 logoutSuccessHandler 登出成功处理,如果登出失败则由 ExceptionTranslationFilter ;如果不是登出路径则直接进入下一个过滤器。
当到 UsernamePasswordAuthenticationFilter 的时候判断是否为登录路径,如果是,则进入该过滤器进行登录操作,如果登录失败则到 AuthenticationFailureHandler 登录失败处理器处理,如果登录成功则到 AuthenticationSuccessHandler 登录成功处理器处理,如果不是登录请求则不进入该过滤器。
当到 FilterSecurityInterceptor 的时候会拿到 uri ,根据 uri 去找对应的鉴权管理器,鉴权管理器做鉴权工作,鉴权成功则到 Controller 层否则到 AccessDeniedHandler 鉴权失败处理器处理。
推荐教程:《Java教程》
Atas ialah kandungan terperinci Spring Security原理. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!