2015-12-02 8 views
0

У меня есть сессия Scoped Bean:@SessionScoped управляемый компонент воссозданный когда исключение обрабатывается PrimeExceptionHandler

@SessionScoped 
public class UserSession { 
    User user; 
} 

Во время моего LoginView, я бросаю SecurityException:

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

Какой будет переадресован web.xml до SelectUserBean

Теперь вот странная вещь, которую я действительно не понимаю: перед тем, как я выброшу SecurityException, UserSession имеет идентификатор [email protected] и пользователя Foo. Теперь в SelectUserBeanUserSession имеет новый идентификатор, а пользователь null.

в моей faces-config я имел Primefaces обработку исключений:

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

и

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

после удаления, она работает, как ожидалось. любые идеи по этому поводу?

Почему это происходит? Я думал, поскольку это компонент SessionScoped, он должен быть того же значения.

ответ

0

Что-то в цепочке создало новую сессию, ergo у вас появился новый сеанс.

 Смежные вопросы

  • Нет связанных вопросов^_^