1. Spring Security的默认实现分析
- 根据url分配到不同的Filter。
UsernamePasswordAuthenticationFilter
对默认的表单登录进行处理BasicAuthenticationFilter
对 Http Basic进行处理验证权限。- 从
AuthenticationManager
中选择合适的AuthenticationProvider
进行权限验证
2. 5.7版本的变化
经过个人测试,bean注入的方法配置不会自动加载UsernamePasswordAuthenticationFilter
和BasicAuthenticationFilter
。这意味着没有了默认的表单登录和Http Basie,需要自定义登录和验证。
3. 个人配置
项目用Jwt作为登录凭证,所以不需要 session、formLogin和默认的HttpBasie实现。
http.logout().disable();
关闭默认登出filter,不加载Logoutfilter
。http.sessionManagement().disable();
关闭Session,不加载SessionManagementFilter
。http.authenticationProvider(authenticationProvider);
自定义的一个AuthenticationProvider
,会被添加到默认的ProviderManager
。http.exceptionHandling().authenticationEntryPoint(restAuthenticationEntryPoint).accessDeniedHandler(restAccessDeniedHandler);
认证异常和权限不足异常的处理