2017-01-11 7 views
1

Я добавил # символ на имя, адрес электронной почты и адрес. Но когда я вижу в hmc или backoffice, hash (#) удаляется. имя и emailId существуют без хэша. Почему гибрид не принимает символ # в любом значении атрибута?hybris не хранит # в любом значении

ответ

1

Класс de.hybris.platform.servicelayer.web.XSSFilter переносит символ # из полей ввода. Вы можете проверить это, добавив следующее значение для ваших local.properties:

xss.filter.enabled=false 

После того, как вы сделаете это, вы будете в состоянии захватить данные, содержащие # характер. Но поскольку вы не хотите отключать XSSFilter, так что единственный способ обойти это - переопределить метод doFilter на XSSFilter и добавить некоторую логику, чтобы исключить данные, которые будут содержать символ #.

Кроме того, если вы пытаетесь сохранить эти ценности в других местах, как local.properties, то, пожалуйста, попробуйте хранить значение, как показано ниже, используйте \\ перед тем # символа:

property.value=hybris\\#value 
+0

Спасибо за предоставленный мне ответ. Он работает нормально. Я также хочу знать, почему гибрид не хранит # (хеш) в базе данных bydefault. –

+0

Почему вы говорите, что XSSFilter удаляет # char? Где вы это видели? XSSFilter использует шаблон, определенный в ключах 'xss.filter ...', я не вижу никакого фильтра '#' в конфигурации ootb. Можете ли вы предоставить ссылку, подтверждающую ваше заявление? Благодаря! –

+0

Hi @ alain.janinm, я нашел аналогичный вопрос в Hybris Experts и подумал о предоставлении ответа здесь. Я лично не проверял решение. https://experts.hybris.com/questions/52907/password-field-not-allowing-special-character.html –