package org.jblooming.waf;
import org.jblooming.waf.settings.PlatformConfiguration;
import org.jblooming.waf.settings.ApplicationSupport;
import org.jblooming.waf.settings.PersistenceConfiguration;
import org.jblooming.waf.settings.I18nEntryPersistent;
import org.jblooming.ontology.PersistentText;
import org.jblooming.persistence.hibernate.PlatformAnnotationConfiguration;
import org.jblooming.persistence.hibernate.HibernateFactory;
import org.jblooming.security.PlatformPermissions;
import org.jblooming.logging.AuditLogRecord;
import org.hibernate.MappingException;
import javax.servlet.jsp.PageContext;
import java.io.File;
import java.net.URL;
/**
* (c) Open Lab - www.open-lab.com
* Date: Jun 27, 2007
* Time: 3:42:06 PM
*/
public class PlatformSettings extends ApplicationSupport {
public PlatformSettings() {
super(new PlatformPermissions());
}
public boolean isLoginCookieEnabled() {
return false;
}
public String getName() {
return PLATFORM_APP_NAME;
}
public String getRootFolder() {
return "commons";
}
public void configurePersistence(PlatformConfiguration pc) {
PlatformAnnotationConfiguration hibConfiguration = PersistenceConfiguration.getFirstPersistenceConfiguration().getHibernateConfiguration();
URL common = HibernateFactory.class.getClassLoader().getResource("common.hbm.xml");
try {
hibConfiguration.addURL(common);
} catch (MappingException e) {
throw new RuntimeException(e);
}
hibConfiguration.addAnnotatedClass(AuditLogRecord.class);
hibConfiguration.addAnnotatedClass(PersistentText.class);
hibConfiguration.addAnnotatedClass(I18nEntryPersistent.class);
}
public void configureFreeAccess(PlatformConfiguration pc) {
FrontControllerFilter.ignoredPatterns.add("platformCss.jsp");
// please do not put index.jsp as free file here: eventually put it in specific application settings
AccessControlFilter.freePatterns.add("login.jsp");
AccessControlFilter.freePatterns.add("openlab.jsp");
AccessControlFilter.freePatterns.add("error.jsp");
AccessControlFilter.freeFolders.add("commons" + File.separator + "settings");
AccessControlFilter.freeFolders.add("commons" + File.separator + "skin");
AccessControlFilter.freeFolders.add("commons" + File.separator + "js");
AccessControlFilter.freeFolders.add("commons" + File.separator + "layout");
AccessControlFilter.freeFiles.add("commons" + File.separator + "security" + File.separator + "login.jsp");
AccessControlFilter.freeFiles.add("command.jsp");
}
public void configureNotMonitored(PlatformConfiguration pc) {
}
public void configureViews(PlatformConfiguration pc) {
}
public void configureNeedingPersistence(PlatformConfiguration pc) {
}
public void configureNeedingPageContext(PageContext pageContext) {
}
}