我正在尝试在我的grails应用程序的src
目录中的groovy类中执行此操作。
它是Filter
。该课程如下:
class Proxy implements Filter {
}
在init
方法中,我使用的是springSecurityService
bean:
GrailsApplication application = org.codehaus.groovy.grails.commons.ApplicationHolder.getApplication()
springSecurityService = application.getMainContext().getBean("springSecurityService")
在我doFilter
内部,我试图找出用户是否已经过身份验证。我试过了:
springSecurityService.isLoggedIn()
但它总是返回false
。
我犯了错误?
提前致谢。
答案 0 :(得分:0)
尝试使用SecurityContextHolder
SecurityContextHolder.getContext().getAuthentication()
(但这是Java;我确信你可以找到类似的东西)
答案 1 :(得分:0)
过滤器的顺序是否可能不正确?在Spring Security Filter之后需要调用您的自定义Filter。如果您在过滤器中执行new Exception().printStackTrace()
,您是否在堆栈中看到SecurityContextPersistenceFilter
?如果没有,那么您需要将过滤器(代理)更改为springSecurityFilterChain之后。