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);
}