Я использую grails 2.5.x и добавляю PreAuthentication
к пружинной защите.Доступ к «сеансу» с фильтра
Я пытаюсь передать параметры запроса в пакет PreAuth, поэтому я создал фильтр, который это делает. Вот класс:
class PreAuthenticationRequestParametersFilter extends AbstractPreAuthenticatedProcessingFilter {
Вот самозагрузки:
def init = { servletContext ->
// injects request data for SAML login
SpringSecurityUtils.clientRegisterFilter('preAuthRequestFilter', SecurityFilterPosition.PRE_AUTH_FILTER)
}
Наконец, вот мой боб конфигурации из resources.groovy
:
preAuthRequestFilter(PreAuthenticationRequestParametersFilter) {
authenticationManager = ref("authenticationManager")
}
Я хотел бы сделать некоторые поиска в базе данных из фильтра , Тем не менее, это работает, когда я пытаюсь использовать методы DAO (Hibernate).
org.springframework.dao.DataAccessResourceFailureException: Could not obtain current Hibernate Session; nested exception is org.hibernate.HibernateException: No Session found for current thread
org.grails.datastore.gorm.GormStaticApi.methodMissing(GormStaticApi.groovy:105)
com.mydomain.PreAuthenticationRequestParametersFilter.decodeXml(PreAuthenticationRequestParametersFilter.groovy:52)
Я попытался добавить "session = ref("session")
" на мой фильтр в resources.groovy
. Это не удалось скомпилировать.
Есть ли способ получить доступ к моей сессии/DAO на этом уровне?
ответил в 20 минутах от самого Берта. Мне нужно только читать, но это отличная модель, особенно потому, что она полезна для остальной части моей проблемы с проблемами безопасности весной. – tedder42