Update Servlet Holders (#22055)

This commit is contained in:
Mohit Yadav 2025-07-01 14:46:37 +05:30 committed by GitHub
parent 32471b095e
commit ffd50a7fbd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -41,7 +41,6 @@ import io.swagger.v3.oas.annotations.security.SecuritySchemes;
import io.swagger.v3.oas.annotations.servers.Server;
import jakarta.servlet.DispatcherType;
import jakarta.servlet.FilterRegistration;
import jakarta.servlet.ServletRegistration;
import jakarta.validation.Validation;
import jakarta.ws.rs.container.ContainerRequestFilter;
import jakarta.ws.rs.container.ContainerResponseFilter;
@ -461,53 +460,21 @@ public class OpenMetadataApplication extends Application<OpenMetadataApplication
// Initialize default SAML settings (e.g. IDP metadata, SP keys, etc.)
SamlSettingsHolder.getInstance().initDefaultSettings(catalogConfig);
ServletRegistration.Dynamic samlRedirectServlet =
environment.servlets().addServlet("saml_login", new SamlLoginServlet());
samlRedirectServlet.addMapping("/api/v1/saml/login");
ServletRegistration.Dynamic samlReceiverServlet =
environment
.servlets()
.addServlet(
"saml_acs",
new SamlAssertionConsumerServlet(catalogConfig.getAuthorizerConfiguration()));
samlReceiverServlet.addMapping("/api/v1/saml/acs");
ServletRegistration.Dynamic samlMetadataServlet =
environment.servlets().addServlet("saml_metadata", new SamlMetadataServlet());
samlMetadataServlet.addMapping("/api/v1/saml/metadata");
// 1) SAML Login
ServletHolder samlLoginHolder = new ServletHolder();
samlLoginHolder.setName("saml_login");
samlLoginHolder.setServlet(new SamlLoginServlet());
contextHandler.addServlet(samlLoginHolder, "/api/v1/saml/login");
// 2) SAML Assertion Consumer (ACS)
ServletHolder samlAcsHolder = new ServletHolder();
samlAcsHolder.setName("saml_acs");
samlAcsHolder.setServlet(
new SamlAssertionConsumerServlet(catalogConfig.getAuthorizerConfiguration()));
contextHandler.addServlet(samlAcsHolder, "/api/v1/saml/acs");
// 3) SAML Metadata
ServletHolder samlMetadataHolder = new ServletHolder();
samlMetadataHolder.setName("saml_metadata");
samlMetadataHolder.setServlet(new SamlMetadataServlet());
contextHandler.addServlet(samlMetadataHolder, "/api/v1/saml/metadata");
// 4) SAML Token Refresh
ServletHolder samlRefreshHolder = new ServletHolder();
samlRefreshHolder.setName("saml_refresh_token");
samlRefreshHolder.setServlet(new SamlTokenRefreshServlet());
contextHandler.addServlet(samlRefreshHolder, "/api/v1/saml/refresh");
// 5) SAML Logout
ServletHolder samlLogoutHolder = new ServletHolder();
samlLogoutHolder.setName("saml_logout_token");
samlLogoutHolder.setServlet(
new SamlLogoutServlet(
catalogConfig.getAuthenticationConfiguration(),
catalogConfig.getAuthorizerConfiguration()));
contextHandler.addServlet(samlLogoutHolder, "/api/v1/saml/logout");
contextHandler.addServlet(new ServletHolder(new SamlLoginServlet()), "/api/v1/saml/login");
contextHandler.addServlet(
new ServletHolder(
new SamlAssertionConsumerServlet(catalogConfig.getAuthorizerConfiguration())),
"/api/v1/saml/acs");
contextHandler.addServlet(
new ServletHolder(new SamlMetadataServlet()), "/api/v1/saml/metadata");
contextHandler.addServlet(
new ServletHolder(new SamlTokenRefreshServlet()), "/api/v1/saml/refresh");
contextHandler.addServlet(
new ServletHolder(
new SamlLogoutServlet(
catalogConfig.getAuthenticationConfiguration(),
catalogConfig.getAuthorizerConfiguration())),
"/api/v1/saml/logout");
}
}