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

标签 grails grails-plugin

嗨,我正在尝试在 Grails 应用程序中进行 facebook 登录,我遇到的问题是,当用户登录 facebook 时,spring security core 无法识别他,我如何手动设置用户的主体? 我可以查找用户对象,但我不知道如何设置它以便在调用 getAuthenticatedUser() 时获得真正的用户(现在它返回一个空对象)

提前致谢, 问候

最佳答案

不能对 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 的不同实现接口(interface)如示例中使用的接口(interface)。

关于Grails Spring安全核心,如何手动设置主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5048851/

相关文章:

multithreading - Grails 1.3.7- Multi-Tenancy 插件和多线程操作-线程无法访问租户

grails - grails-Spring Security UI奇怪的行为

Grails 设置语言环境不会改变语言

grails - 在特定DIV中渲染TAGLIB

grails - 如何在 Config.groovy 中引用应用程序属性?

grails - GORM - all-delete-orphan 不起作用

grails - 在 IntelliJ IDEA 中更改 Grails SDK 在插件模块上不起作用

email - MS Exchange 服务器的 Grails 邮件插件配置

grails - Grails可搜索插件-没有列出要索引的实体

grails - 我可以使用UIPerformance grails插件并将静态资源托管在另一个域中吗?