chat04项目代码解析
1.
@Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth .userDetailsService(userDetailsServiceImpl) // 配置 AuthenticationManager 使用 userService .passwordEncoder(passwordEncoder()) // 配置 AuthenticationManager 使用 userService .userDetailsPasswordManager(userDetailsPasswordServiceImpl); // 配置密码自动升级服务 } 这段代码是啥意思
2.
UserDetailsService 类是干嘛用的
3.
springsecurity的UserDetailsPasswordService 类是干嘛用的
4.
Optional.ofNullable 怎么使用
5.
public static String getCurrentLogin() { return Optional.ofNullable(SecurityContextHolder.getContext().getAuthentication()) .map(Authentication::getPrincipal) .map(principal -> { // 大多数 AuthenticationManager 会返回 UserDetails ,提供更多信息 if (principal instanceof UserDetails) { val userDetails = (UserDetails) principal; return userDetails.getUsername(); } // 如果没有更多信息,可以看一下是否是一个 Principal if (principal instanceof Principal) { return ((Principal) principal).getName(); } // 其他情况看作是一个用户名 return String.valueOf(principal); }) // 如果未认证,那么 Authentication 为 Null // 可以在未受安全保护的 URL 中实验 // 此次返回匿名用户 .orElse(ANONYMOUS_USER); } 这段代码啥意思
6.
Optional.ofNullable 怎么使用
8.
@RequiredArgsConstructor public class ClientErrorLoggingConfigurer extends AbstractHttpConfigurer<ClientErrorLoggingConfigurer, HttpSecurity> { private final List<HttpStatus> errorCodes; @Override public void init(HttpSecurity http) throws Exception { // initialization code } @Override public void configure(HttpSecurity http) throws Exception { // 配置 Filter,让它的位置在 FilterSecurityInterceptor 之后 http.addFilterAfter(new ClientErrorLoggingFilter(errorCodes), FilterSecurityInterceptor.class); } } 这段代码啥意思
9.
GenericFilterBean 类 有啥用
10.
UsernamePasswordAuthenticationFilter 过滤器的执行顺序在FilterSecurityInterceptor 前面还是后面
11.
SpringSecurity过滤器链
https://blog.csdn.net/qq_53318060/article/details/126835852?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-5-126835852-blog-121381839.235^v35^pc_relevant_increate_t0_download_v2&spm=1001.2101.3001.4242.4&utm_relevant_index=6
12.
史上最简单的Spring Security教程(十六):FilterSecurityInterceptor详解
https://blog.csdn.net/liuminglei1987/article/details/107662200