Struts 2 валидация параметров

Мне интересно, как обрабатывать недостающие параметры запроса в действии struts2: допустим, у вас есть действие для просмотра профиля пользователя. Действие покажет профиль данного пользователя в соответствии с параметром userId.

Как вы справляетесь с тем фактом, что этот параметр может отсутствовать (если пользователь загружает действие непосредственно из панели URL-адресов или играет с аддоном данных несанкционированного доступа...)?

Я вижу несколько вариантов, но мне интересно, есть ли другие варианты, и какой из них лучше:

  1. В каждом действии на prepare() проверяйте, заданы ли ожидаемые параметры, если не перенаправлены
  2. В каждом действии в методе, обрабатывающем запрос, проверяйте эти параметры, если нет, то перенаправляйте

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

Если у вас есть идея или какая-либо точка зрения по этому вопросу, я бы хотел услышать это

Спасибо

1 ответ

Решение

Валидация работает с параметрами запроса - не имеет значения, через форму или параметры запроса.

До тех пор, пока у действия есть соответствующие установщики, что и в этом случае, проверка по умолчанию работает нормально. Определение, имеет ли пользователь права на доступ к рассматриваемому профилю, также может быть выполнено с использованием специального средства проверки, возможно, такого, которое использует существующую бизнес-логику для определения прав доступа.

Однако все это можно обернуть с помощью Spring Security и избавить от необходимости написания собственного перехватчика и / или валидатора. Какое решение является наиболее подходящим, зависит от ваших реальных потребностей.

Другие вопросы по тегам