JWTSpringBoot应用程序在与angular 11集成时无法正常工作

lqfhib0f  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(274)

基于这个主题,我似乎发现了问题,但我真的不知道如何解决它。
我对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() 它允许我访问该页面,但总的来说,它会破坏安全流。

rt4zxlrg

rt4zxlrg1#

你试过以下,这对我来说,我可以通过这个配置访问主页。

http.authorizeRequests().mvcMatchers("/").permitAll()

还有一件事不要使用蚂蚁匹配器,它不像mvcmatcher那样安全和可定制

osh3o9ms

osh3o9ms2#

我假设您希望返回一个页面,而不是uri上的简单json响应 GET / .
配置 .antMatchers("/").permitAll() 使公众能够访问确切的资源 / ,但它不允许您匿名下载其他资源,如 /global.css , /foo.js 等。
把它改成 .antMatchers("/*").permitAll() 这使您可以公开访问 / 路径。

相关问题