2016-06-19 36 views
5

Istnieją przykłady, w których różne rodzaje przedmiotów są wstrzykiwane do prezentera, ale nie mogę znaleźć wyjaśnienia, jak to zrobić.Jak wstrzyknąć obiekt sesji/użytkownika po bootowaniu?

W przykładzie Bootstrap-Code wstrzykuje się np. obiekt SecurityDelegate.

Również w przykładzie Gatekeeper widzę wstrzykiwane rzeczy, np. MyGatekeeper, ale jak to się dzieje?

Chcę najpierw sprawdzić, czy użytkownik jest zalogowany, a następnie utworzyć obiekt CurrentSession lub coś w tym stylu. Ale w jaki sposób mogę przekazać/wstrzyknąć ten obiekt?

W tej chwili inicjuję obiekt singleton CurrentUser, który jest rodzajem brzydkiego imho. Chciałbym uruchomić obsługę GWTP, ale jak?


Weźmy ten przykład CurrentSession jest wstrzykiwany do strażnika:

@DefaultGatekeeper 
public class LoggedInGatekeeper implements Gatekeeper { 
    private final CurrentSession currentSession; 

    @Inject 
    LoggedInGatekeeper(CurrentSession currentSession) { 
     this.currentSession = currentSession; 
    } 

    @Override 
    public boolean canReveal() { 
     return currentSession.isLoggedIn(); 
    } 
} 

Jak mogę wstrzyknąć CurrentSession tutaj?

+0

Wow, to pytanie przetrwało 20 godzin z całkowicie błędnymi tagami bez głosowania: D Przepraszamy za to, poprawiłem te tagi. – displayname

+0

Powinien zostać uderzony. Wygląda na to, że nikt o tym nie wie ani nie tęsknił. –

+1

@EdvinTenovim Nobodoy wie. Fantastyczny! XD – displayname

Odpowiedz

0

Oto poradnik, który wyjaśnia, jak korzystać z Gatekeeper: http://dev.arcbees.com/gwtp/tutorials/tutorial-part2.html

Declare klasa CurrentSession za (CurrentUser w tutorialu) jako Singleton w module twojego Gina jak poniżej:

public class YourGinModule extends AbstractGinModule { 

    @Override 
    protected void configure() { 
     bind(CurrentSession.class).in (Singleton.class); 
     ... 
    } 

} 

Tutaj można znaleźć inny Przykład użycia GWTP Gatekeeper po stronie klienta i Spring Security po stronie serwera: https://github.com/imrabti/gwtp-spring-security