您好我试图在Grails应用程序中登录facebook,我遇到的问题是当用户登录facebook时,Spring安全核心无法识别他,我该如何手动设置用户的主体? 我可以查找用户对象但我不知道如何设置它以便在调用getAuthenticatedUser()时获得真正的用户(现在它返回一个空对象)
提前致谢, 此致
答案 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接口的不同实现作为示例中使用的接口。