Ядро за сигурност на Grails Spring, как да зададете принципал ръчно

Здравейте, опитвам се да направя влизане във facebook в приложение на grails, проблемът, който имам, е, че когато потребителят е влязъл във facebook, ядрото за защита на spring не го разпознава, как мога да задам ръчно принципала на потребителя? Мога да търся потребителския обект, но не знам как да го настроя, за да получа истински потребител, когато извикам getAuthenticatedUser() (сега връща нулев обект)

Благодаря предварително, Поздрави


person belcebuu    schedule 19.02.2011    source източник


Отговори (1)


Не мога да кажа нищо относно 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) 

Може би ще трябва да използвате различна реализация на Интерфейс за удостоверяване като този, използван в примера.

person Stefan Armbruster    schedule 19.02.2011