Spring Boot 安全性 - 未经授权的 URL

Posted

技术标签:

【中文标题】Spring Boot 安全性 - 未经授权的 URL【英文标题】:SpringBoot Security - Unauthorized URL 【发布时间】:2020-09-27 01:54:05 【问题描述】:

我有这个 SpringBoot 安全配置:

  @Override
        protected void configure(HttpSecurity http) throws Exception 


            http
                    .authorizeRequests()
                    .antMatchers(HttpMethod.PUT, "/api/**").permitAll()
                    .antMatchers(publicMatchers()).permitAll()
                    .anyRequest().authenticated()
                    .and()
                    .formLogin().loginPage("/login").defaultSuccessUrl("/book/list")
                    .failureUrl("/login?error").permitAll()
                    .and()
                    .logout().permitAll();
        

 private String[] publicMatchers() 

         /** Public URLs. */
        final String[] PUBLIC_MATCHERS = 
                "/webjars/**",
                serverContextPath + "/css/**",
                serverContextPath + "/js/**",
                serverContextPath + "/fonts/**",
                serverContextPath + "/images/**",                
                "/api/**",
                serverContextPath ,
                "/",
                "/error/**/*",
                "/console/**",
                ForgotMyPasswordController.FORGOT_PASSWORD_URL_MAPPING,
                ForgotMyPasswordController.CHANGE_PASSWORD_PATH,
                SignupController.SIGNUP_URL_MAPPING
        ;

        return PUBLIC_MATCHERS;

    

期待这个 URL http://localhost:5678/pradera/api/users/fcm(使用 PUT 方法)将是公开的,但是当我在 Postman 上测试它时,Ii 将我重定向到登录页面

在 publicMatchers() 方法上,我也有 "/api/**",,它似乎适用于调用 http://localhost:5678/pradera/api/deviceevent/list (GET)

【问题讨论】:

您在 /api 映射之前有一个 /pradera 映射,但在您的安全配置中,只有 /api 匹配 permitAll() 将其更改为 /pradera/api/** 以使其工作,除非您没有'未提供上下文映射。 【参考方案1】:

添加这个:http.csrf().disable();

【讨论】:

以上是关于Spring Boot 安全性 - 未经授权的 URL的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 安全性 403 重定向

Spring Boot 401 未经授权的邮递员

Zuul代理oAuth2在Spring Boot中未经授权

转到Spring Boot 1.5.1和OAuth2 + JWT令牌 - 错误401未经授权

在Spring Boot应用程序中配置安全性

我应该在 Spring 后端禁用 CORS 吗?未经授权的请求被阻止