このチュートリアルの最後の段落で説明したように、現在、vaadin.spring の ViewAccessControl インターフェイスを使用しようとしています。
しかし、isAccessGranted メソッドを実装すると、次のエラーが発生します。
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
FrontPageView クラスの宣言 (Enter メソッドで行う唯一のことは、いくつかの vaadin ui 要素を追加することです):
@SpringView(name = FrontPageView.NAME)
public class FrontPageView extends DashboardDesign implements View, ViewAccessControl {
@Override
public void enter(ViewChangeEvent event) {
}
}
そして、私の isAccessGranted メソッドの実装:
@Override
public boolean isAccessGranted(UI ui, String beanName) {
return SecurityContextHolder.getContext().getAuthentication().isAuthenticated();
}
PS 基本的に、この男が 1 年前に抱えていた問題と同じです: Vaadin と SpringViewProvider を使用して安全なビューを作成する方法