private void doSetup()

in src/main/java/org/apache/geronimo/microprofile/impl/jwtauth/servlet/GeronimoJwtAuthInitializer.java [56:84]


    private void doSetup(final ServletContext ctx, final GeronimoJwtAuthConfig config, final Class<?> app) {
        final FilterRegistration.Dynamic filter = ctx.addFilter("geronimo-microprofile-jwt-auth-filter", GeronimoJwtAuthFilter.class);
        filter.setAsyncSupported(true);
        final String[] mappings = ofNullable(app).map(a -> a.getAnnotation(ApplicationPath.class))
                .map(ApplicationPath::value)
                .map(v -> (!v.startsWith("/") ? "/" : "") +
                        (v.contains("{") ? v.substring(0, v.indexOf("{")) : v) +
                        (v.endsWith("/") ? "" : "/") +
                        "*")
                .map(v -> new String[]{v})
                .orElseGet(() -> {
                    final ServletRegistration defaultServlet = ctx.getServletRegistration(Application.class.getName());
                    if (defaultServlet != null && !defaultServlet.getMappings().isEmpty()) {
                        return defaultServlet.getMappings().toArray(new String[defaultServlet.getMappings().size()]);
                    }

                    final String[] servletMapping = ctx.getServletRegistrations().values().stream()
                            .filter(r -> r.getInitParameter("javax.ws.rs.Application") != null)
                            .flatMap(r -> r.getMappings().stream())
                            .toArray(String[]::new);
                    if (servletMapping.length > 0) {
                        return servletMapping;
                    }

                    // unlikely
                    return new String[]{config.read("filter.mapping.default", "/*")};
                });
        filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, mappings);
    }