Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка javax.crypto.BadPaddingException, не могу понять что за ошибка 
:(
    Опции темы
TopaZ
Дата 26.2.2009, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 17.5.2008

Репутация: нет
Всего: нет



Здравствуйте. 
При попытке запуска JSF-страницы, она (страница) сначала открывается нормально, но при выполнениии submit на любом из элементов на странице, выскакивает следующее исключение:
Код

javax.crypto.BadPaddingException: Given final block not properly padded

Caused by:
javax.crypto.BadPaddingException - Given final block not properly padded
+- Stack Trace
javax.faces.FacesException: javax.crypto.BadPaddingException: Given final block not properly padded
    at org.apache.myfaces.shared_impl.util.StateUtils.symmetric(StateUtils.java:373)
    at org.apache.myfaces.shared_impl.util.StateUtils.symmetric(StateUtils.java:411)
    at org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:291)
    at org.apache.myfaces.shared_impl.util.StateUtils.reconstruct(StateUtils.java:240)
    at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getSavedState(HtmlResponseStateManager.java:184)
    at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getTreeStructureToRestore(HtmlResponseStateManager.java:148)
    at org.ajax4jsf.application.AjaxStateManager.restoreLogicalViewId(AjaxStateManager.java:328)
    at org.ajax4jsf.application.AjaxStateManager.restoreStateFromSession(AjaxStateManager.java:245)
    at org.ajax4jsf.application.AjaxStateManager.restoreView(AjaxStateManager.java:225)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.restoreView(JspViewHandlerImpl.java:505)
    at org.ajax4jsf.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:116)
    at org.ajax4jsf.application.AjaxViewHandler.restoreView(AjaxViewHandler.java:131)
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:85)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
    at org.ajax4jsf.Filter.doFilter(Filter.java:175)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:595)
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded
    at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
    at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
    at com.sun.crypto.provider.DESCipher.engineDoFinal(DashoA12275)
    at javax.crypto.Cipher.doFinal(DashoA12275)
    at org.apache.myfaces.shared_impl.util.StateUtils.symmetric(StateUtils.java:369)
    ... 32 more


при этом я не использую никакого криптографического шифрования или чего нибудь подобного. 
И еще один момент: это исключение возникает постоянно при открытии страницы во встроенном в Eclipse браузере, а в других браузерах, запущенных параллельно, все работает нормально, хотя изредка бывает, что и в них выскакивает такое же исключение. Кто знает, что это может быть?
PM MAIL   Вверх
lemonade
Дата 27.2.2009, 04:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.12.2006
Где: Беларусь, Минск

Репутация: 2
Всего: 2



Не знаю не сталкивалась + нет самой страницы и прочая...
Посмотри ссылки (проблемы в майфейсах похожие):
https://issues.apache.org/jira/browse/MYFACES-1786
https://issues.apache.org/jira/browse/MYFACES-1838

И тут есть как забанить всю лабуду с инкрипшном/декрипшном в принципе тоже что и в issue, но, вроде в issue комент урезанный:
http://www.mail-archive.com/[email protected]/msg36977.html

PM MAIL ICQ Skype   Вверх
TopaZ
Дата 27.2.2009, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 17.5.2008

Репутация: нет
Всего: нет



две первые ссылки не работают, а по третьей получил следующее:
Цитата

(1) in web.xml, define init-parameter "org.apache.myfaces.SECRET" to be some 
reasonably long string. The server will then use the same encryption secret 
after restart (instead of generating a key itself), and so will be able to 
decrypt "old" sessions. 

(2) in web.xml, define init-parameter "org.apache.myfaces.USE_ENCRYPTION" to 
be "false", in order to disable client-side state encryption. Of course this 
potentially opens a security hole in the app. 

(3) use server-side state saving (only client-side state is encrypted)


А кто расскажет, что означает третий пункт?

Это сообщение отредактировал(а) TopaZ - 27.2.2009, 20:01
PM MAIL   Вверх
powerOn
Дата 27.2.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата(TopaZ @  27.2.2009,  19:59 Найти цитируемый пост)
use server-side state saving (only client-side state is encrypted)


"Используйте метод сохранения состояния на стороне сервера. (Только сохранения состояния на стороне клиента шифруется)"

Для того чтобы использовать server-side state saving в JSF, нужно в web.xml добавить:
Код

<context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>




--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
TopaZ
Дата 27.2.2009, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 17.5.2008

Репутация: нет
Всего: нет



Я прошу прощения, наверное я не знаю элементарных вещей, но на что влияет данный параметр (javax.faces.STATE_SAVING_METHOD)?

Что при этом изменится в работе приложения и для чего он нужен?

PM MAIL   Вверх
powerOn
Дата 27.2.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



STATE_SAVING_METHOD - это способ сохранения информации о View. Т.е. некоторый набор данных который должен быть сохранен между запросами, необходимый при восстановлении состояния UI дерева в JSF.
Если использовать  сохранение состояния на клиенте, то эта информация гоняется между клиентом и сервером в запросах (через hidden поля). Плюс тут в том что у сервера не занимается лишняя память, а минус в увеличении трафика.  В другом случае (серверное хранение состояния)  плюсы и минусы обратные.



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
TopaZ
Дата 27.2.2009, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 17.5.2008

Репутация: нет
Всего: нет



Спасибо за объяснение.
STATE_SAVING_METHOD не помогает, оказалось, что у меня по умолчаниию установлен именно server-side state saving
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0720 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.