首先,这是IDEA的提示,因为IDEA没有在spring上下文中发现对应Bean的注册,所以会高亮,不影响,IDEA还不够智能,自动配置写多了这种事经常发生,跟Spring的版本关系不大。其次,你这里的这个提示,主要是因为没有@EnableWebSecurity注解。再其次,你这个Security的配法也不对,AuthenticationManager 是你不用操心的东西,第一个bean可以删了。再再其次,放开静态资源不应该用 http.authorizeRequests().antMatcher()而是WebSecurity.ignoring,前者会使请求匿名通过过滤链,后者是避开过滤链,静态资源应该直接避开过滤链减少耗时@Bean @Order(SecurityProperties.IGNORED_ORDER) public WebSecurityCustomizer ignoringCustomizer() { return web -> web.ignoring() .antMatchers("/webjars/**", "/iconfont/**", "/favicon.ico", "/css/**", "/images/**", "/h-ui/**", "/js/**", "/lib/**", "/h-ui.admin/**"); }再再再其次,login接口放开,应该用.antMatchers("/login/**").permitAll() 而不是/login,由于security 对于所有不公开访问的 url 都会进行 saveRequest 操作 所以 这里必须放开"/login/**" 而不是"/login",否则错误页面"/login?error" 也会被缓存至 savedRequest中,导致用户重复登录 或者覆盖掉oauth2回调
首先,这是IDEA的提示,因为IDEA没有在spring上下文中发现对应Bean的注册,所以会高亮,不影响,IDEA还不够智能,自动配置写多了这种事经常发生,跟Spring的版本关系不大。
其次,你这里的这个提示,主要是因为没有
@EnableWebSecurity
注解。再其次,你这个Security的配法也不对,
AuthenticationManager
是你不用操心的东西,第一个bean可以删了。再再其次,放开静态资源不应该用
http.authorizeRequests().antMatcher()
而是WebSecurity.ignoring
,前者会使请求匿名通过过滤链,后者是避开过滤链,静态资源应该直接避开过滤链减少耗时再再再其次,
login
接口放开,应该用.antMatchers("/login/**").permitAll()
而不是/login
,由于security 对于所有不公开访问的 url 都会进行 saveRequest 操作 所以 这里必须放开"/login/**" 而不是"/login",否则错误页面"/login?error" 也会被缓存至 savedRequest中,导致用户重复登录 或者覆盖掉oauth2回调