2016-04-20 12 views
2

Ich versuche derzeit, die ViewAccessControl-Schnittstelle von vaadin.spring zu verwenden, wie im letzten Absatz von this Tutorial erläutert.Verwenden von ViewAccessControl in Spring und Vaadin

Aber wenn die isAccessGranted Methode Implementierung ich die folgende Fehlermeldung erhalten:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'frontPageView': Scope 'vaadin-view' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: No active view

Die Deklaration der FrontPageView Klasse (Das einzige, was ich in der Methode eingeben tun, ist es, einige Vaadin ui Elemente hinzuzufügen) :

@SpringView(name = FrontPageView.NAME) 
public class FrontPageView extends DashboardDesign implements View, ViewAccessControl { 

    @Override 
    public void enter(ViewChangeEvent event) { 

    } 

} 

Und meine Umsetzung der isAccessGranted Methode:

@Override 
public boolean isAccessGranted(UI ui, String beanName) { 
     return SecurityContextHolder.getContext().getAuthentication().isAuthenticated(); 
} 

P.S. Es ist im Grunde das gleiche Problem, das dieser Kerl vor einem Jahr hatte: How to create a secure view with Vaadin and SpringViewProvider

Antwort

2

Ok, ich habe es jetzt herausgefunden. Wenn jemand anderes dieses Problem jemals findet, besteht die Lösung darin, die ViewInstanceAccessControl-Schnittstelle anstelle der ViewAccessControl-Schnittstelle zu verwenden. Auf diese Weise funktioniert alles gut.

Verwandte Themen