2015-12-02 3 views
0

J'ai une session Scoped Bean:haricot @SessionScoped géré recréée lors exception est gérée par PrimeExceptionHandler

@SessionScoped 
public class UserSession { 
    User user; 
} 

Pendant mon LoginView, je jette un SecurityException:

throw new java.lang.SecurityException("You need to login!"); 

Qui sera redirigé par la web.xml à SelectUserBean

Maintenant, voici la chose étrange que je ne comprends vraiment pas: Avant de lancer le SecurityException, le UserSession a l'ID [email protected] et l'utilisateur Foo. Maintenant dans le SelectUserBean le UserSession a un nouvel identifiant et l'utilisateur est null.

dans mon faces-config j'avais Primefaces la gestion des exceptions:

<el-resolver>  
    org.primefaces.application.exceptionhandler.PrimeExceptionHandlerELResolver 
</el-resolver> 

et

<factory> 
    <exception-handler-factory> 
     org.primefaces.application.exceptionhandler.PrimeExceptionHandlerFactory 
    </exception-handler-factory> 
</factory> 

après le retrait, cela fonctionne comme prévu. des idées à ce sujet?

Pourquoi cela se produit-il? Je pensais que puisque c'est un bean SessionScoped, il doit avoir la même valeur.

Répondre

0

Quelque chose dans la chaîne a créé une nouvelle session, ergo vous avez un nouveau bean session.