基于这个主题,我似乎发现了问题,但我真的不知道如何解决它。
我对websecurityconfigureradapter有以下配置,因为我正在处理jwt安全流,就像在本页中一样,问题出在配置方面,而不是构建本身。
配置如下:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and().csrf().disable()
.exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
.authorizeRequests().antMatchers("/login").permitAll()
.antMatchers("/register/**").permitAll()
.antMatchers("/").permitAll()
.anyRequest().authenticated();
http.addFilterBefore(authenticationJwtTokenFilter(), UsernamePasswordAuthenticationFilter.class);
}
不幸的是,它不允许我访问主页。如果我这样做了 .antMatchers("/**").permitAll()
会很好用的。当我进入http://localhost:8080我得到:
2021-04-26 23:09:42.517 ERROR 10160 --- [nio-8080-exec-4] c.a.d.security.jwt.AuthEntryPointJwt : Unauthorized error: Full authentication is required to access this resource
这是从 unauthorizedHandler
但是在配置中 .antMatchers("/").permitAll()
应该允许我访问索引,但不允许。
例如,如果我和 .antMatchers("/**").permitAll()
它允许我访问该页面,但总的来说,它会破坏安全流。
2条答案
按热度按时间rt4zxlrg1#
你试过以下,这对我来说,我可以通过这个配置访问主页。
还有一件事不要使用蚂蚁匹配器,它不像mvcmatcher那样安全和可定制
osh3o9ms2#
我假设您希望返回一个页面,而不是uri上的简单json响应
GET /
.配置
.antMatchers("/").permitAll()
使公众能够访问确切的资源/
,但它不允许您匿名下载其他资源,如/global.css
,/foo.js
等。把它改成
.antMatchers("/*").permitAll()
这使您可以公开访问/
路径。