Struts 2 валидация параметров
Мне интересно, как обрабатывать недостающие параметры запроса в действии struts2: допустим, у вас есть действие для просмотра профиля пользователя. Действие покажет профиль данного пользователя в соответствии с параметром userId.
Как вы справляетесь с тем фактом, что этот параметр может отсутствовать (если пользователь загружает действие непосредственно из панели URL-адресов или играет с аддоном данных несанкционированного доступа...)?
Я вижу несколько вариантов, но мне интересно, есть ли другие варианты, и какой из них лучше:
- В каждом действии на prepare() проверяйте, заданы ли ожидаемые параметры, если не перенаправлены
- В каждом действии в методе, обрабатывающем запрос, проверяйте эти параметры, если нет, то перенаправляйте
Я также подумал, что могу использовать валидаторы, чтобы убедиться, что параметры есть, но это работает только для формы, не так ли?
Если у вас есть идея или какая-либо точка зрения по этому вопросу, я бы хотел услышать это
Спасибо
1 ответ
Валидация работает с параметрами запроса - не имеет значения, через форму или параметры запроса.
До тех пор, пока у действия есть соответствующие установщики, что и в этом случае, проверка по умолчанию работает нормально. Определение, имеет ли пользователь права на доступ к рассматриваемому профилю, также может быть выполнено с использованием специального средства проверки, возможно, такого, которое использует существующую бизнес-логику для определения прав доступа.
Однако все это можно обернуть с помощью Spring Security и избавить от необходимости написания собственного перехватчика и / или валидатора. Какое решение является наиболее подходящим, зависит от ваших реальных потребностей.