use of de.agilecoders.wicket.core.settings.BootstrapSettings in project syncope by apache.
the class SyncopeConsoleApplication method init.
@Override
protected void init() {
super.init();
// read console.properties
Properties props = PropertyUtils.read(getClass(), CONSOLE_PROPERTIES, "console.directory").getLeft();
site = props.getProperty("site");
Args.notNull(site, "<site>");
anonymousUser = props.getProperty("anonymousUser");
Args.notNull(anonymousUser, "<anonymousUser>");
anonymousKey = props.getProperty("anonymousKey");
Args.notNull(anonymousKey, "<anonymousKey>");
scheme = props.getProperty("scheme");
Args.notNull(scheme, "<scheme>");
host = props.getProperty("host");
Args.notNull(host, "<host>");
port = props.getProperty("port");
Args.notNull(port, "<port>");
rootPath = props.getProperty("rootPath");
Args.notNull(rootPath, "<rootPath>");
useGZIPCompression = props.getProperty("useGZIPCompression");
Args.notNull(useGZIPCompression, "<useGZIPCompression>");
maxUploadFileSizeMB = props.getProperty("maxUploadFileSizeMB") == null ? null : Integer.valueOf(props.getProperty("maxUploadFileSizeMB"));
maxWaitTime = Integer.valueOf(props.getProperty("maxWaitTimeOnApplyChanges", "30"));
String csrf = props.getProperty("csrf");
// process page properties
pageClasses = new HashMap<>();
populatePageClasses(props);
pageClasses = Collections.unmodifiableMap(pageClasses);
// Application settings
IBootstrapSettings settings = new BootstrapSettings();
// set theme provider
settings.setThemeProvider(new SingleThemeProvider(new AdminLTE()));
// install application settings
Bootstrap.install(this, settings);
getResourceSettings().setUseMinifiedResources(true);
getResourceSettings().setThrowExceptionOnMissingResource(true);
getJavaScriptLibrarySettings().setJQueryReference(new DynamicJQueryResourceReference());
getSecuritySettings().setAuthorizationStrategy(new MetaDataRoleAuthorizationStrategy(this));
ClassPathScanImplementationLookup lookup = (ClassPathScanImplementationLookup) getServletContext().getAttribute(ConsoleInitializer.CLASSPATH_LOOKUP);
lookup.getPageClasses().forEach(cls -> MetaDataRoleAuthorizationStrategy.authorize(cls, SyncopeConsoleSession.AUTHENTICATED));
getMarkupSettings().setStripWicketTags(true);
getMarkupSettings().setCompressWhitespace(true);
if (BooleanUtils.toBoolean(csrf)) {
getRequestCycleListeners().add(new CsrfPreventionRequestCycleListener());
}
getRequestCycleListeners().add(new SyncopeConsoleRequestCycleListener());
mountPage("/login", getSignInPageClass());
flowableModelerDirectory = props.getProperty("flowableModelerDirectory");
Args.notNull(flowableModelerDirectory, "<flowableModelerDirectory>");
try {
reconciliationReportKey = props.getProperty("reconciliationReportKey");
} catch (NumberFormatException e) {
LOG.error("While parsing reconciliationReportKey", e);
}
Args.notNull(reconciliationReportKey, "<reconciliationReportKey>");
mountResource("/" + FLOWABLE_MODELER_CONTEXT, new ResourceReference(FLOWABLE_MODELER_CONTEXT) {
private static final long serialVersionUID = -128426276529456602L;
@Override
public IResource getResource() {
return new FilesystemResource(FLOWABLE_MODELER_CONTEXT, flowableModelerDirectory);
}
});
mountResource("/workflowDefGET", new ResourceReference("workflowDefGET") {
private static final long serialVersionUID = -128426276529456602L;
@Override
public IResource getResource() {
return new WorkflowDefGETResource();
}
});
mountResource("/workflowDefPUT", new ResourceReference("workflowDefPUT") {
private static final long serialVersionUID = -128426276529456602L;
@Override
public IResource getResource() {
return new WorkflowDefPUTResource();
}
});
// enable component path
if (getDebugSettings().isAjaxDebugModeEnabled()) {
getDebugSettings().setComponentPathAttributeName("syncope-path");
}
}
use of de.agilecoders.wicket.core.settings.BootstrapSettings in project hale by halestudio.
the class BaseWebApplication method init.
@Override
public void init() {
super.init();
BootstrapSettings settings = new BootstrapSettings();
final ThemeProvider themeProvider = new BootswatchThemeProvider() {
{
add(new MetroTheme());
add(new GoogleTheme());
add(new WicketTheme());
add(new Bootstrap3Theme());
defaultTheme("bootstrap-responsive");
// defaultTheme("bootstrap");
}
};
settings.setThemeProvider(themeProvider);
Bootstrap.install(this, settings);
BootstrapLess.install(this);
configureResourceBundles();
IPackageResourceGuard packageResourceGuard = getResourceSettings().getPackageResourceGuard();
if (packageResourceGuard instanceof SecurePackageResourceGuard) {
SecurePackageResourceGuard guard = (SecurePackageResourceGuard) packageResourceGuard;
guard.addPattern("+org/apache/wicket/resource/jquery/*.map");
}
// enforce mounts so security interceptors based on URLs can't be fooled
getSecuritySettings().setEnforceMounts(true);
getSecuritySettings().setAuthorizationStrategy(new SimplePageAuthorizationStrategy(SecuredPage.class, getLoginPageClass()) {
@Override
protected boolean isAuthorized() {
SecurityContext securityContext = SecurityContextHolder.getContext();
if (securityContext != null) {
Authentication authentication = securityContext.getAuthentication();
if (authentication != null && authentication.isAuthenticated()) {
for (GrantedAuthority authority : authentication.getAuthorities()) {
if (authority.getAuthority().equals(UserConstants.ROLE_USER) || authority.getAuthority().equals(UserConstants.ROLE_ADMIN)) {
// allow access only for users/admins
return true;
}
}
}
}
return false;
}
});
getComponentInstantiationListeners().add(new SpringComponentInjector(this));
getRequestCycleListeners().add(new AbstractRequestCycleListener() {
@Override
public IRequestHandler onException(RequestCycle cycle, Exception ex) {
return new RenderPageRequestHandler(new PageProvider(new ExceptionPage(ex)));
}
});
// add login page to every application based on this one (if enabled)
Class<? extends BasePage> loginClass = getLoginPageClass();
if (loginClass != null) {
// login page
mountPage("/login", loginClass);
// user settings
mountPage("/settings", UserSettingsPage.class);
// about
mountPage("/about", AboutPage.class);
// contact
mountPage("/contact", ContactPage.class);
if (OpenIdLoginPage.class.equals(loginClass)) {
// for OpenID auth also add page for new users
mountPage("/new", NewUserPage.class);
}
}
}
use of de.agilecoders.wicket.core.settings.BootstrapSettings in project nutch by apache.
the class NutchUiApplication method init.
/**
* @see org.apache.wicket.Application#init()
*/
@Override
public void init() {
super.init();
BootstrapSettings settings = new BootstrapSettings();
Bootstrap.install(this, settings);
configureTheme(settings);
getComponentInstantiationListeners().add(new SpringComponentInjector(this, context));
}
use of de.agilecoders.wicket.core.settings.BootstrapSettings in project ocvn by devgateway.
the class FormsWebApplication method configureBootstrap.
/**
* configures wicket-bootstrap and installs the settings.
*/
private void configureBootstrap() {
WicketWebjars.install(this);
final IBootstrapSettings settings = new BootstrapSettings();
// specify an empty bootstrap css resource so that we can have more
// control when do we load the bootstrap styles.
// By default all pages will load bootstrap.css file and there are
// situations (like print page) when we don't need this styles.
// The boostrap.css file is loaded as dependency in MainCss Instance
// settings.setCssResourceReference(EmptyCss.INSTANCE);
settings.useCdnResources(false);
// use the default bootstrap theme
Bootstrap.install(this, settings);
BootstrapLess.install(this);
}
use of de.agilecoders.wicket.core.settings.BootstrapSettings in project oc-explorer by devgateway.
the class FormsWebApplication method configureBootstrap.
/**
* configures wicket-bootstrap and installs the settings.
*/
private void configureBootstrap() {
WicketWebjars.install(this);
final IBootstrapSettings settings = new BootstrapSettings();
// specify an empty bootstrap css resource so that we can have more
// control when do we load the bootstrap styles.
// By default all pages will load bootstrap.css file and there are
// situations (like print page) when we don't need this styles.
// The boostrap.css file is loaded as dependency in MainCss Instance
// settings.setCssResourceReference(EmptyCss.INSTANCE);
settings.useCdnResources(false);
// use the default bootstrap theme
Bootstrap.install(this, settings);
BootstrapLess.install(this);
}
Aggregations