如何在Grails中的登录表单之后访问Acegi存储的URL

如何在Grails中的登录表单之后访问Acegi存储的URL,grails,spring-security,gigya,Grails,Spring Security,Gigya,我正在将Gigya与运行Acegi的web应用程序集成 我的工作原理是,客户端Gigya可以对现有用户进行身份验证,然后跳过登录表单post,点击控制器方法,安全地通知服务器Gigya已经执行了用户身份验证 在我的控制器中使用以下代码,我可以告诉Acegi用户已通过身份验证 def user = com.playhardsports.football.web.admin.auth.User.find("from User where username=?", [UID]) def authori

我正在将Gigya与运行Acegi的web应用程序集成

我的工作原理是,客户端Gigya可以对现有用户进行身份验证,然后跳过登录表单post,点击控制器方法,安全地通知服务器Gigya已经执行了用户身份验证

在我的控制器中使用以下代码,我可以告诉Acegi用户已通过身份验证

def user = com.playhardsports.football.web.admin.auth.User.find("from User where username=?", [UID])
def authorities = [new GrantedAuthorityImpl('ROLE_USER')] as GrantedAuthority[]
def userDetails = new org.codehaus.groovy.grails.plugins.springsecurity.GrailsUserImpl(UID, fakePassword, true, true, true, true, authorities, user)
def authentication = new UsernamePasswordAuthenticationToken(userDetails, fakePassword, authorities)
SecurityContextHolder.context.authentication = authentication
我现在遇到的问题是,我不知道在身份验证之后将用户重定向到哪里

常见的情况是,用户访问受保护的页面,Acegi将其重定向到登录表单。在我的登录表单上,我还有Gigya验证用户的控件。当然,与此同时,正常的Acegi流将在登录后重定向回原始的受保护页面

因此,我正在寻找如何访问该url,如果没有url,因为用户直接登录,那么如何找到Acegi配置的默认url


谢谢。

您可以从以下会话访问
SavedRequest

import org.springframework.security.ui.savedrequest.SavedRequest
import org.springframework.security.ui.AbstractProcessingFilter as APF

def savedRequest = session[APF.SPRING_SECURITY_SAVED_REQUEST_KEY]
String originalUrl = savedRequest?.fullRequestUrl ?: '/'

您可以从以下会话访问
SavedRequest

import org.springframework.security.ui.savedrequest.SavedRequest
import org.springframework.security.ui.AbstractProcessingFilter as APF

def savedRequest = session[APF.SPRING_SECURITY_SAVED_REQUEST_KEY]
String originalUrl = savedRequest?.fullRequestUrl ?: '/'