use of io.datarouter.web.config.service.ServiceName in project datarouter by hotpads.
the class DatarouterPermissionRequestHandler method showForm.
@Handler(defaultHandler = true)
private Mav showForm(OptionalString deniedUrl, OptionalString allowedRoles) {
if (!authenticationConfig.useDatarouterAuthentication()) {
return new MessageMav(noDatarouterAuthentication());
}
Mav mav = new Mav(files.jsp.authentication.permissionRequestJsp);
mav.put("serviceName", serviceName.get());
mav.put("permissionRequestPath", paths.permissionRequest.toSlashedString());
Optional<String> defaultSpecifics = deniedUrl.map(url -> {
return "I tried to go to this URL: " + url + "." + allowedRoles.map(" These are its allowed roles at the time of this request: "::concat).orElse("");
});
mav.put("defaultSpecifics", defaultSpecifics);
DatarouterUser user = getCurrentUser();
mav.put("currentRequest", datarouterPermissionRequestDao.scanOpenPermissionRequestsForUser(user.getId()).findMax(Comparator.comparing(request -> request.getKey().getRequestTime())).orElse(null));
Set<String> emails = new HashSet<>();
if (serverTypeDetector.mightBeProduction()) {
emails.addAll(permissionRequestEmailType.tos);
}
emails.add(adminEmail.get());
if (subscribersSettings.includeSubscribers.get()) {
emails.addAll(subscibersEmail.get());
}
mav.put("email", emails);
mav.put("submitPath", paths.permissionRequest.submit.join("/"));
mav.put("declinePath", paths.permissionRequest.declineAll.join("/"));
return mav;
}
use of io.datarouter.web.config.service.ServiceName in project datarouter by hotpads.
the class DatarouterWebGuiceModule method configureServlets.
@Override
protected void configureServlets() {
install(new DatarouterSecretPluginBuilderImpl().build().getAsDefaultBinderModule());
install(new DatarouterStorageGuiceModule());
bind(ServletContextSupplier.class).toInstance(new ServletContextProvider(getServletContext()));
bind(JsonSerializer.class).annotatedWith(Names.named(HandlerEncoder.DEFAULT_HANDLER_SERIALIZER)).to(GsonJsonSerializer.class);
bind(PortIdentifier.class).annotatedWith(Names.named(CompoundPortIdentifier.COMPOUND_PORT_IDENTIFIER)).to(CompoundPortIdentifier.class);
bindDefault(DatarouterAuthenticationConfig.class, BaseDatarouterAuthenticationConfig.class);
bindDefaultInstance(ServiceName.class, new ServiceName(""));
bindDefaultInstance(PublicDomain.class, new PublicDomain(""));
bindDefaultInstance(PrivateDomain.class, new PrivateDomain(""));
bindDefaultInstance(ContextName.class, new ContextName(""));
bindDefault(BaseDatarouterSessionDao.class, NoOpDatarouterSessionDao.class);
bindDefault(BaseDatarouterSamlDao.class, NoOpDatarouterSamlDao.class);
bindDefault(ExceptionRecorder.class, NoOpExceptionRecorder.class);
optionalBinder(AppNavBar.class);
bindDefault(RoleManager.class, DatarouterRoleManager.class);
optionalBinder(SamlRegistrar.class);
bindDefault(SettingFinder.class, MemorySettingFinder.class);
bindDefault(UserSessionService.class, NoOpUserSessionService.class);
bindDefault(CurrentSessionInfo.class, NoOpCurrentSessionInfo.class);
bindDefault(LatencyMonitoringGraphLink.class, NoOpLatencyMonitoringGraphLink.class);
bindDefault(AppNavBarRegistrySupplier.class, NoOpAppNavBarRegistry.class);
bindDefault(ChangelogRecorder.class, NoOpChangelogRecorder.class);
// define as singleton for everybody
bind(Gson.class).toInstance(GsonTool.GSON);
bindDefaultInstance(DefaultEmailDistributionListZoneId.class, new DefaultEmailDistributionListZoneId(ZoneId.systemDefault()));
}
use of io.datarouter.web.config.service.ServiceName in project datarouter by hotpads.
the class TraceFilter method init.
@Override
public void init(FilterConfig filterConfig) {
DatarouterInjector injector = getInjector(filterConfig.getServletContext());
serverName = injector.getInstance(ServerName.class);
trace2BufferForLocal = injector.getInstance(Trace2ForLocalFilterToMemoryBuffer.class);
trace2BufferForPublisher = injector.getInstance(Trace2ForPublisherFilterToMemoryBuffer.class);
traceSettings = injector.getInstance(DatarouterTraceFilterSettingRoot.class);
urlBuilder = injector.getInstance(TraceUrlBuilder.class);
currentSessionInfo = injector.getInstance(CurrentSessionInfo.class);
handlerMetrics = injector.getInstance(HandlerMetrics.class);
serviceName = injector.getInstance(ServiceName.class);
}
use of io.datarouter.web.config.service.ServiceName in project datarouter by hotpads.
the class DatarouterWebPlugin method configure.
@Override
public void configure() {
bind(FilesRoot.class).to(filesClass);
bindActualNullSafe(ExceptionRecorder.class, exceptionRecorderClass);
bindActualNullSafe(DatarouterAuthenticationConfig.class, authenticationConfigClass);
bindActualNullSafe(CurrentSessionInfo.class, currentSessionInfoClass);
bindDefault(ExceptionHandlingConfig.class, exceptionHandlingConfigClass);
bindActualInstance(AppListenersClasses.class, new DatarouterAppListenersClasses(appListenerClasses));
bindActualInstance(WebAppListenersClasses.class, new DatarouterWebAppListenersClasses(webAppListenerClasses));
bindActualNullSafe(RoleManager.class, roleManagerClass);
bindActualNullSafe(UserSessionService.class, userSessionServiceClass);
bindActualNullSafe(DatarouterUserExternalDetailService.class, datarouterUserExternalDetailClass);
bindActualNullSafe(AppNavBarRegistrySupplier.class, appNavBarRegistrySupplier);
bind(HomepageHandler.class).to(homepageHandler);
bind(HomepageRouteSet.class).to(homepageRouteSet);
bindActualInstance(PluginRegistrySupplier.class, new PluginRegistry(registeredPlugins));
bindActualInstance(NodeWidgetDatabeanExporterLinkSupplier.class, new NodeWidgetDatabeanExporterLink(nodeWidgetDatabeanExporterLink));
bindActualInstance(NodeWidgetTableCountLinkSupplier.class, new NodeWidgetTableCountLink(nodeWidgetTableCountLink));
bind(RequestProxySetter.class).to(requestProxy);
bindActualInstance(DefaultEmailDistributionListZoneId.class, new DefaultEmailDistributionListZoneId(defaultEmailDistributionListZoneId));
bindActualInstance(DailyDigestEmailZoneId.class, new DailyDigestEmailZoneId(dailyDigestEmailZoneId));
bindActualInstance(ServiceName.class, new ServiceName(serviceName));
bindActualInstance(PublicDomain.class, new PublicDomain(publicDomain));
bindActualInstance(PrivateDomain.class, new PrivateDomain(privateDomain));
bindActualInstance(ContextName.class, new ContextName(contextName));
}
Aggregations