I'm not familiar with Twitter auth or Twitter4J specifically, but since it is twitter that redirects the user back to your application, you must pass twitter the conversation id such that twitter redirects the user back to an URL that includes that id.
The Java EE container maintains the conversation state by passing the cid=...
parameter around and that happens automatically for JSF navigation, but you have to take care of it otherwise. So make sure that you obtain the conversation id after you start the conversation and pass it to Twitter such that twitter redirects the user to twitterRedirect.xhtml?cid=...
.