0

我正在尝试在src我的 grails 应用程序目录中的 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

我在哪里犯错误?

提前致谢。

4

2 回答 2

0

尝试使用 SecurityContextHolder

SecurityContextHolder.getContext().getAuthentication()

(但这是 Java;我相信您可以找到类似的东西)

于 2013-01-31T13:23:29.417 回答
0

您的过滤器顺序是否可能不正确?您的自定义过滤器需要在 Spring 安全过滤器之后调用。如果您new Exception().printStackTrace()在过滤器中执行,您是否看到SecurityContextPersistenceFilter堆栈中的?如果没有,那么您需要将您的过滤器(代理)更改为在 springSecurityFilterChain 之后。

于 2013-02-01T17:02:44.107 回答