I have set an attribute in the session that would be true or false. If that attribute is true I need vaadin to intercept all requests and redirect it to a new custom Vaadin page. I know there is a interface called VaadinServiceInitListener however I am having trouble redirecting the user to the custom page since UI.getcurrent() returns null.
Here is my code:
@Override
public void serviceInit(ServiceInitEvent serviceEvent) {
serviceEvent.getSource().addSessionInitListener(initEvent -> {
initEvent.getSession().addRequestHandler(globalRequestHandler());
});
}
public RequestHandler globalRequestHandler() {
return (session, vaadinRequest, response) -> {
session.access(() -> {
if (isSessionlocked()) {
UI.getCurrent().navigate(MyCustomView.class);
}
});
return false;
};
}