import org.opendaylight.aaa.web.ResourceDetails;
import org.opendaylight.aaa.web.ServletDetails;
import org.opendaylight.aaa.web.WebContext;
-import org.opendaylight.aaa.web.WebContextBuilder;
-import org.opendaylight.aaa.web.WebContextRegistration;
import org.opendaylight.aaa.web.WebContextSecurer;
import org.opendaylight.aaa.web.WebServer;
import org.opendaylight.aaa.web.servlet.ServletSupport;
+import org.opendaylight.yangtools.concepts.Registration;
/**
* Initializes the wep app.
*
* @author Thomas Pantelis
*/
-public class WebInitializer {
- private final WebContextRegistration registration;
+public final class WebInitializer implements AutoCloseable {
+ private final Registration registration;
- public WebInitializer(WebServer webServer, WebContextSecurer webContextSecurer, ServletSupport servletSupport,
- Application webApp) throws ServletException {
- WebContextBuilder webContextBuilder = WebContext.builder().contextPath("apidoc").supportsSessions(true)
- .addServlet(ServletDetails.builder().servlet(servletSupport.createHttpServletBuilder(webApp).build())
- .addUrlPattern("/swagger2/apis/*").addUrlPattern("/swagger2/18/apis/*")
- .addUrlPattern("/openapi3/apis/*").addUrlPattern("/openapi3/18/apis/*").build())
- .addResource(ResourceDetails.builder().name("/explorer").build())
- .addResource(ResourceDetails.builder().name("/18/explorer").build());
+ public WebInitializer(final WebServer webServer, final WebContextSecurer webContextSecurer,
+ final ServletSupport servletSupport, final Application webApp) throws ServletException {
+ var webContextBuilder = WebContext.builder()
+ .name("OpenAPI")
+ .contextPath("/apidoc")
+ .supportsSessions(true)
+ .addServlet(ServletDetails.builder()
+ .servlet(servletSupport.createHttpServletBuilder(webApp).build())
+ .addUrlPattern("/swagger2/apis/*")
+ .addUrlPattern("/openapi3/apis/*")
+ .build())
+ .addResource(ResourceDetails.builder().name("/explorer").build());
webContextSecurer.requireAuthentication(webContextBuilder, "/swagger2/*", "/openapi3/*");
registration = webServer.registerWebContext(webContextBuilder.build());
}
+ @Override
public void close() {
registration.close();
}