将springSecurityService注入筛选器导致错误

将springSecurityService注入筛选器导致错误,spring,grails,Spring,Grails,Iam在我的grails 2.4.4应用程序中使用spring security core 2.0-RC5。最近,我在我的应用程序中实现了以下过滤器,但问题是当SignupController请求到来时,由于springSecurityService注入(在注册的情况下,没有身份验证和会话)而发生错误 那么,我如何在过滤器中注入springSecurityService而不捕获注册请求呢 导入com.services.portal.ProfileService; 导入com.services.

Iam在我的grails 2.4.4应用程序中使用spring security core 2.0-RC5。最近,我在我的应用程序中实现了以下过滤器,但问题是当SignupController请求到来时,由于springSecurityService注入(在注册的情况下,没有身份验证和会话)而发生错误

那么,我如何在过滤器中注入springSecurityService而不捕获注册请求呢

导入com.services.portal.ProfileService;
导入com.services.portal.SignupService;
导入com.services.portal.UserSessionService;
导入com.domain.auth.User;
导入com.services.portal.FormProcessService;
导入com.services.portal.ProfileService;
导入com.services.portal.SignupService;
导入com.services.portal.UserSessionService
导入grails.plugin.springsecurity.SpringSecurityService;
导入grails.plugin.springsecurity.annotation.securied
导入grails.plugin.springsecurity.ui.AbstractS2UiController;
导入groovy.sql.sql
类AuthFilters{
def springSecurityService
def过滤器={
allExceptIndex(控制器:“登录|注册|注销”,反转:true){
之前={
如果(会话[“用户名”]==null){
def Username=springSecurityService.getPrincipal().getUsername()
会话[“用户名”]=用户名
}
if(会话[“UserId”]==null){
字符串userId=springSecurityService.getPrincipal().getId()
会话[“UserId”]=UserId
}
如果(会话[“incomingIp”]==null){
def incomingIp=request.remoteHost
会话[“incomingIp”]=incomingIp
}
if(会话[“currUserRole”]==null){
def roles=springSecurityService.getPrincipal().getAuthorities()
roles=roles.toString().substring(1,roles.toString().length()-1)
会话[“currUserRole”]=角色
}
}
after={Map model->
}
afterView={例外情况e->
}
}
}

}
处理注册请求的控制器在操作之前使用
@Secured(['permitAll'])
将其公开。

我已经为注册控制器提供了@Secured(['permitAll'])注释