开发者

Grails spring security core, how to set principal manually

开发者 https://www.devze.com 2023-02-11 20:17 出处:网络
Hi im trying to make facebook\'s login in a grails app, the problem I have is that when the user is logged in facebook, spring security core doesn\'t recognize him, how can I set the user\'s principal

Hi im trying to make facebook's login in a grails app, the problem I have is that when the user is logged in facebook, spring security core doesn't recognize him, how can I set the user's principal manually? I can look for the user object but i don't know how to set i开发者_JS百科t in order to get a true user when i call getAuthenticatedUser() (now it returns a null object)

Thanks in advance, Regards


Cannot say anything regarding facebook, but Spring Security has a SecurityContextHolder that can be used to manipulate the authentication (and therefore the principal) like this:

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) 

Maybe you'll need to use a different implementation of the Authentication interface as the one used in the example.

0

精彩评论

暂无评论...
验证码 换一张
取 消