gpt4 book ai didi

spring - 将 springSecurityService 注入(inject)过滤器导致错误

转载 作者:行者123 更新时间:2023-12-02 15:48:31 25 4
gpt4 key购买 nike

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

那么如何在我的过滤器中注入(inject) springSecurityService 而不会捕获注册请求。

import com.services.portal.ProfileService;
import com.services.portal.SignupService;
import com.services.portal.UserSessionService;
import com.domain.auth.User;
import com.services.portal.FormProcessService;
import com.services.portal.ProfileService;
import com.services.portal.SignupService;
import com.services.portal.UserSessionService

import grails.plugin.springsecurity.SpringSecurityService;
import grails.plugin.springsecurity.annotation.Secured
import grails.plugin.springsecurity.ui.AbstractS2UiController;
import groovy.sql.Sql



class AuthFilters {
def springSecurityService
def filters = {
allExceptIndex(controller: 'login|signup|logout', invert: true) {
before = {
if(session["Username"] == null){
def Username = springSecurityService.getPrincipal().getUsername()
session["Username"] = Username
}
if(session["UserId"] == null){
String userId = springSecurityService.getPrincipal().getId()
session["UserId"] = userId
}
if(session["incomingIp"] == null){
def incomingIp = request.remoteHost
session["incomingIp"] = incomingIp
}
if(session["currUserRole"] == null){
def roles = springSecurityService.getPrincipal().getAuthorities()
roles = roles.toString().substring(1, roles.toString().length()-1)
session["currUserRole"] = roles
}
}

after = { Map model ->
}

afterView = { Exception e ->
}
}
}
}

最佳答案

处理注册请求的 Controller 使用 @Secured(['permitAll']) 将其公开在行动之前。

关于spring - 将 springSecurityService 注入(inject)过滤器导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43390062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com