Grails spring安全核心,如何手动设置主体

时间:2011-02-19 04:31:44

标签: grails grails-plugin

您好我试图在Grails应用程序中登录facebook,我遇到的问题是当用户登录facebook时,Spring安全核心无法识别他,我该如何手动设置用户的主体? 我可以查找用户对象但我不知道如何设置它以便在调用getAuthenticatedUser()时获得真正的用户(现在它返回一个空对象)

提前致谢, 此致

1 个答案:

答案 0 :(得分:4)

关于facebook不能说什么,但是Spring Security有一个SecurityContextHolder可以用来操纵身份验证(因此也就是主体):

import org.springframework.security.core.context.SecurityContextHolder as SCH
import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken


....
def securityContext = SCH.context
def principal = <whatever you use as principal>
def credentials = <...>
securityContext.authentication = new PreAuthenticatedAuthenticationToken(principal, credentials) 

也许你需要使用Authentication接口的不同实现作为示例中使用的接口。