in plugin-core/plugin/src/main/groovy/grails/plugin/springsecurity/SpringSecurityUtils.groovy [692:772]
static SortedMap<Integer, String> findFilterChainNames(filterChainFilterNames, boolean useSecureChannel,
boolean useIpRestrictions, boolean useX509, boolean useDigestAuth,
boolean useBasicAuth, boolean useSwitchUserFilter) {
SortedMap<Integer, String> orderedNames = new TreeMap()
// if the user listed the names, use those
if (filterChainFilterNames) {
// cheat and put them in the map in order - the key values don't matter in this case since
// the user has chosen the order and the map will be used to insert single filters, which
// wouldn't happen if they've defined the order already
filterChainFilterNames.eachWithIndex { String name, int index -> orderedNames[index] = name }
}
else {
orderedNames[SecurityFilterPosition.FIRST.order + 10] = 'securityRequestHolderFilter'
if (useSecureChannel) {
orderedNames[SecurityFilterPosition.CHANNEL_FILTER.order] = 'channelProcessingFilter'
}
// CONCURRENT_SESSION_FILTER
orderedNames[SecurityFilterPosition.SECURITY_CONTEXT_FILTER.order] = 'securityContextPersistenceFilter'
orderedNames[SecurityFilterPosition.LOGOUT_FILTER.order] = 'logoutFilter'
if (useIpRestrictions) {
orderedNames[SecurityFilterPosition.LOGOUT_FILTER.order + 1] = 'ipAddressFilter'
}
if (useX509) {
orderedNames[SecurityFilterPosition.X509_FILTER.order] = 'x509ProcessingFilter'
}
// PRE_AUTH_FILTER
// CAS_FILTER
orderedNames[SecurityFilterPosition.FORM_LOGIN_FILTER.order] = 'authenticationProcessingFilter'
// OPENID_FILTER
// facebook
if (useDigestAuth) {
orderedNames[SecurityFilterPosition.DIGEST_AUTH_FILTER.order] = 'digestAuthenticationFilter'
orderedNames[SecurityFilterPosition.EXCEPTION_TRANSLATION_FILTER.order + 1] = 'digestExceptionTranslationFilter'
}
if (useBasicAuth) {
orderedNames[SecurityFilterPosition.BASIC_AUTH_FILTER.order] = 'basicAuthenticationFilter'
orderedNames[SecurityFilterPosition.EXCEPTION_TRANSLATION_FILTER.order + 1] = 'basicExceptionTranslationFilter'
}
// REQUEST_CACHE_FILTER
orderedNames[SecurityFilterPosition.SERVLET_API_SUPPORT_FILTER.order] = 'securityContextHolderAwareRequestFilter'
orderedNames[SecurityFilterPosition.REMEMBER_ME_FILTER.order] = 'rememberMeAuthenticationFilter'
orderedNames[SecurityFilterPosition.ANONYMOUS_FILTER.order] = 'anonymousAuthenticationFilter'
// SESSION_MANAGEMENT_FILTER
orderedNames[SecurityFilterPosition.EXCEPTION_TRANSLATION_FILTER.order] = 'exceptionTranslationFilter'
orderedNames[SecurityFilterPosition.FILTER_SECURITY_INTERCEPTOR.order] = 'filterInvocationInterceptor'
if (useSwitchUserFilter) {
orderedNames[SecurityFilterPosition.SWITCH_USER_FILTER.order] = 'switchUserProcessingFilter'
}
orderedNames[SecurityFilterPosition.EXCEPTION_TRANSLATION_FILTER.order-10] = 'formContentFilter'
// add in filters contributed by secondary plugins
orderedNames << SpringSecurityUtils.orderedFilters
}
orderedNames
}