0

クロスオリジン構成で API を書いています

私のWebセキュリティ構成には

@Bean
    public FilterRegistrationBean corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(Boolean.TRUE);
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");
        config.addAllowedMethod("*");
        source.registerCorsConfiguration("/**", config);
        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
        bean.setOrder(0);
        return bean;
    }

    @Bean
    public FilterRegistrationBean someFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(someFilter());
        registration.addUrlPatterns("/abc/*");
        registration.setOrder(1);
        return registration;
    }

コントローラ クラス

@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
@RequestMapping("/gdpr/1.0")
public class AbcController {
 

    @PostMapping("/request")
    ReturnStatus saveRequest(HttpServletRequest request,
                             @RequestParam(value = "requestType", required = true) RequestType requestType,
                             @RequestParam(value = "Type", required = true) Type Type,
                             @RequestParam(value = "file", required = true)
                                     MultipartFile uploadedFile) throws InvalidInputException {
        
    }

以下のような私のポストマンからのリクエストをヒットしようとしています

ここに画像の説明を入力

認証フィルターチェック

private static final Pattern HEALTH_CHECK = Pattern.compile("^.+/abc/[\\d]+\\.[\\d]+/?$");
        @Override
            protected void doFilterInternal(HttpServletRequest request,
                                            HttpServletResponse response, FilterChain filterChain)
                    throws ServletException, IOException {
        
                StringBuffer requestURL = request.getRequestURL();
        
                if (isHealthCheck(requestURL)) {
                    filterChain.doFilter(request, response);
                    return;
                }
        
                String source = UNKNOWN;
    
    boolean isHealthCheck(StringBuffer requestURL) {
            if (requestURL != null) {
                Matcher matcher = HEALTH_CHECK.matcher(requestURL.toString());
                return matcher.matches();
            }
            return false;
        }

Matcher.match が常に false になる

私はそこで何かを逃しましたか?

余分なパラメーターを追加しましたか?

迅速な対応を期待しています。

4

1 に答える 1