I have a similar question. We would like to use JSF+Hibernate as our standard portlet framework. However, I am not sure where can we start and close a session. In a normal web application, we can use ServletFilter to accomplish this. In JBoss Portal, ServletFilter is not being invoked, so this approach does not work. We don't want to use JBP specific interceptor as we want our portlets vendor neutral. Any recommendations?
I recommend using JSF for the front end and EJB3 (which for JBoss uses Hibernate under the hood). We are using this architecture on a number of portal projects and it is working well. In my experience, JSF is the dominant model for building portlets, so you will get better support for JSF based portlet questions.
Take a look at the EJB Trailblazer (http://trailblazer.demo.jboss.com/EJB3Trail/) for a good working overview of EJB3. EJB3 is better then just Hibernate. The EntityManger in EJB3 (using the @PersistanceContext injection) essentially provides what you are looking for with the ServletFilter. However it's better because it handles transactions for you and puts more of your architecture under a standards-based design.