org.owasp.csrfguard.Logger=edu.internet2.middleware.grouper.grouperUi.csrf.CsrfGuardLogger

org.owasp.csrfguard.TokenPerPage=false

org.owasp.csrfguard.action.Redirect.Page=%servletContext%/grouperExternal/public/UiV2Public.index?operation=UiV2Public.postIndex&function=UiV2Public.error&code=csrf

org.owasp.csrfguard.configuration.provider.factory=org.owasp.csrfguard.config.overlay.ConfigurationOverlayProviderFactory

org.owasp.csrfguard.Config.Print = false

# to see how error handling works, edit grouperUi.js
org.owasp.csrfguard.Ajax=true


org.owasp.csrfguard.unprotected.DefaultGrouper=%servletContext%/
org.owasp.csrfguard.unprotected.DefaultGrouperNoSlash=%servletContext%
org.owasp.csrfguard.unprotected.GrouperDir=%servletContext%/grouper/*
org.owasp.csrfguard.unprotected.GrouperExternalPublicAssets=%servletContext%/grouperExternal/public/assets/*
org.owasp.csrfguard.unprotected.GrouperGifs=^/grouper/grouperExternal/public/.*\\.gif$
org.owasp.csrfguard.unprotected.GrouperJpgs=^/grouper/grouperExternal/public/.*\\.jpg$
org.owasp.csrfguard.unprotected.GrouperPngs=^/grouper/grouperExternal/public/.*\\.png$
org.owasp.csrfguard.unprotected.GrouperUiNoSlash=%servletContext%/grouperUi
org.owasp.csrfguard.unprotected.GrouperStatus=%servletContext%/status
org.owasp.csrfguard.unprotected.GrouperIndex=%servletContext%/index.jsp
org.owasp.csrfguard.unprotected.GrouperOwaspJavascript=%servletContext%/grouperExternal/public/OwaspJavaScriptServlet

#############################################################
# This is for Lite and Admin UI, can be removed at some point
org.owasp.csrfguard.unprotected.GrouperHome=%servletContext%/home.do
org.owasp.csrfguard.unprotected.GrouperExternal=%servletContext%/grouperExternal/index.html
org.owasp.csrfguard.unprotected.GrouperExternalAppHtml=%servletContext%/grouperExternal/appHtml/*

org.owasp.csrfguard.unprotected.GrouperExternalPublicNetworkGraph=%servletContext%/grouperExternal/public/networkGraph/*

org.owasp.csrfguard.unprotected.GrouperUi=%servletContext%/grouperUi/
org.owasp.csrfguard.unprotected.GrouperUiIndex=%servletContext%/grouperUi/index.html
org.owasp.csrfguard.unprotected.GrouperUiAppHtml=%servletContext%/grouperUi/appHtml/*
org.owasp.csrfguard.unprotected.GrouperI2mi=%servletContext%/i2mi/*
org.owasp.csrfguard.unprotected.GrouperScripts=%servletContext%/scripts/*

org.owasp.csrfguard.unprotected.GrouperStrutsAddSaved=^%servletContext%/addSaved[^.]+\\.do$
org.owasp.csrfguard.unprotected.GrouperStrutsBrowse=^%servletContext%/browse[^.]+\\.do$
org.owasp.csrfguard.unprotected.GrouperStrutsCancel=^%servletContext%/cancel[^.]+\\.do$
org.owasp.csrfguard.unprotected.GrouperStrutserror=%servletContext%/error.do
org.owasp.csrfguard.unprotected.GrouperStrutsfilterError=%servletContext%/filterError.do
org.owasp.csrfguard.unprotected.GrouperStrutshelp=%servletContext%/help.do
org.owasp.csrfguard.unprotected.GrouperStrutslogin=%servletContext%/login.do
org.owasp.csrfguard.unprotected.GrouperStrutsCallLogin=%servletContext%/callLogin.do
org.owasp.csrfguard.unprotected.GrouperStrutslogout=%servletContext%/logout.do
org.owasp.csrfguard.unprotected.GrouperStrutsPopulate=^%servletContext%/populate[^.]+\\.do$
org.owasp.csrfguard.unprotected.GrouperStrutsuserAudit=%servletContext%/userAudit.do
org.owasp.csrfguard.unprotected.GrouperStrutsassignSavedSubject=%servletContext%/assignSavedSubjects.do
#http://localhost:8090/grouper/populateSearchSubjects.do


org.owasp.csrfguard.unprotected.GrouperSimpleMembershipUpdateImportExportExportSubjectIdsCsv=%servletContext%/grouperUi/app/SimpleMembershipUpdateImportExport.exportSubjectIdsCsv/*
org.owasp.csrfguard.unprotected.GrouperSimpleMembershipUpdateImportExportExportAllCsv=%servletContext%/grouperUi/app/SimpleMembershipUpdateImportExport.exportAllCsv/*

#############################################################

org.owasp.csrfguard.unprotected.GrouperUiV2MainIndex=%servletContext%/grouperUi/app/UiV2Main.index
org.owasp.csrfguard.unprotected.GrouperUiV2MainIndexCustomUi=%servletContext%/grouperUi/app/UiV2Main.indexCustomUi
org.owasp.csrfguard.unprotected.GrouperUiV2MainIndexMain=%servletContext%/grouperUi/app/UiV2Main.indexMain
org.owasp.csrfguard.unprotected.GrouperUiV2MainFolderMenu=%servletContext%/grouperUi/app/UiV2Main.folderMenu
org.owasp.csrfguard.unprotected.GrouperUiV2MainFolderMenuObjectPath=%servletContext%/grouperUi/app/UiV2Main.folderMenuObjectPath
org.owasp.csrfguard.unprotected.GrouperUiV2GroupAddMemberFilter=%servletContext%/grouperUi/app/UiV2Group.addMemberFilter
org.owasp.csrfguard.unprotected.GrouperUiV2GroupImportGroupExportSubmit=%servletContext%/grouperUi/app/UiV2GroupImport.groupExportSubmit
org.owasp.csrfguard.unprotected.GrouperUiV2StemCopyParentFolderFilter=%servletContext%/grouperUi/app/UiV2Stem.stemCopyParentFolderFilter
org.owasp.csrfguard.unprotected.GrouperUiV2StemCreateGroupParentFolderFilter=%servletContext%/grouperUi/app/UiV2Stem.createGroupParentFolderFilter
org.owasp.csrfguard.unprotected.GrouperUiV2AttributeDefAttributeDefFilter=%servletContext%/grouperUi/app/UiV2AttributeDef.attributeDefFilter
org.owasp.csrfguard.unprotected.GrouperUiV2AttributeDefNameAttributeDefNameFilter=%servletContext%/grouperUi/app/UiV2AttributeDefName.attributeDefNameFilter
org.owasp.csrfguard.unprotected.GrouperUiV2PermissionPermissionActionNameFilter=%servletContext%/grouperUi/app/UiV2Permission.permissionActionNameFilter
org.owasp.csrfguard.unprotected.GrouperUiV2PermissionLimitDefinitionFilter=%servletContext%/grouperUi/app/SimplePermissionUpdateFilter.filterLimitDefinitions
org.owasp.csrfguard.unprotected.GrouperUiV2StemCreateStemParentFolderFilter=%servletContext%/grouperUi/app/UiV2Stem.createStemParentFolderFilter
org.owasp.csrfguard.unprotected.GrouperUiV2SubjectAddToGroupFilter=%servletContext%/grouperUi/app/UiV2Subject.addToGroupFilter
org.owasp.csrfguard.unprotected.GrouperUiV2GroupUpdateFilter=%servletContext%/grouperUi/app/UiV2Group.groupUpdateFilter
org.owasp.csrfguard.unprotected.GrouperUiV2GroupCompositeFilter=%servletContext%/grouperUi/app/UiV2Group.groupCompositeFactorFilter
org.owasp.csrfguard.unprotected.GrouperUiV2StemAddMemberFilter=%servletContext%/grouperUi/app/UiV2Stem.addMemberFilter
org.owasp.csrfguard.unprotected.GrouperUiV2AdminSubjectApiDiagnosticsActAsCombo=%servletContext%/grouperUi/app/UiV2Admin.subjectApiDiagnosticsActAsCombo
org.owasp.csrfguard.unprotected.GrouperUiV2ExternalEntitiesAddGroupFilter=%servletContext%/grouperUi/app/UiV2ExternalEntities.addGroupFilter
org.owasp.csrfguard.unprotected.GrouperUiV2SubjectAddToStemFilter=%servletContext%/grouperUi/app/UiV2Subject.addToStemFilter
org.owasp.csrfguard.unprotected.GrouperUiV2SubjectAddToAttributeDefFilter=%servletContext%/grouperUi/app/UiV2Subject.addToAttributeDefFilter
org.owasp.csrfguard.unprotected.GrouperExternalPublicIndex=%servletContext%/grouperExternal/public/UiV2Public.index
org.owasp.csrfguard.unprotected.GrouperUiV2GrouperReportDownloadForFolder=%servletContext%/grouperUi/app/UiV2GrouperReport.downloadReportForFolder
org.owasp.csrfguard.unprotected.GrouperUiV2GrouperReportDownloadForGroup=%servletContext%/grouperUi/app/UiV2GrouperReport.downloadReportForGroup
org.owasp.csrfguard.unprotected.GrouperUiV2ExportConfig=%servletContext%/grouperUi/app/UiV2Configure.configurationFileExport
# TODO take this out and error page should not be post
org.owasp.csrfguard.unprotected.GrouperExternalPublicPostIndex=%servletContext%/grouperExternal/public/UiV2Public.postIndex
org.owasp.csrfguard.unprotected.GrouperUiV2Export=^%servletContext%/grouperUi/app/UiV2GroupImport\\.groupExportSubmit/.*$

##########################################################
####### ws and scim should not be behind csrf guard

org.owasp.csrfguard.unprotected.GrouperWsServices=%servletContext%/services/*
org.owasp.csrfguard.unprotected.GrouperWsServicesRest=%servletContext%/servicesRest/*
org.owasp.csrfguard.unprotected.GrouperWsScim=%servletContext%/v2/*

org.owasp.csrfguard.unprotected.GrouperUi=%servletContext%/mockServices/*


# Allows the developer to specify the value of the Cache-Control header in the HTTP response 
# when serving the dynamic JavaScript file. The default value is private, maxage=28800. 
# Caching of the dynamic JavaScript file is intended to minimize traffic and improve performance. 
# Note that the Cache-Control header is always set to "no-store" when either the "Rotate" 
# "TokenPerPage" options is set to true in Owasp.CsrfGuard.properties.
org.owasp.csrfguard.JavascriptServlet.cacheControl = private, maxage=1800
