Nano Hash - криптовалюты, майнинг, программирование

Spring параметр шаблона перехвата URL-адреса безопасности для доступа к методу

В Spring Security мы можем ограничить доступ к определенным веб-ресурсам, используя эту конструкцию: <intercept-url pattern="/admin.xhtml" access="hasPermission('admin')" />

Теперь у меня много страниц, для доступа к каждой нужно иметь специальное разрешение с тем же именем, что и имя страницы. intercept-url принимает шаблон, но, похоже, не обеспечивает передачу параметров из групп, совпадающих с регулярным выражением, в pattern в access. Я хочу что-то вроде этого:

<intercept-url pattern="/([a-z]+).xhtml" access="hasPermission('$1')" />

  • Много = сколько? 10? 100? 1000? Вы можете написать какой-нибудь скрипт на каком-то другом языке, чтобы сгенерировать список, если он около 100. Но если это 1000, дизайн довольно сомнительный. 27.01.2013
  • Я считаю, что это очень распространенное требование для динамического предоставления доступа к определенным URL-адресам, независимо от того, сколько страниц в приложении. Даже 10 строк кода копирования и вставки обычно подвержены ошибкам. 27.01.2013
  • Роль доступа введена для объединения (многих, тысяч и более) пользователей в соответствии с несколькими ролями доступа с целью уменьшения необходимости поддерживать очень большую таблицу ролей доступа для каждого пользователя. Я не уверен, почему было бы слишком много ролей, чтобы сделать это вручную. 27.01.2013
  • Мое требование на самом деле hasPermission(), исправлю вопрос. 27.01.2013
  • Я думаю, вы должны использовать для этого ACL SpringSecurity. 27.01.2013

Ответы:


1

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

<intercept-url pattern="/([a-z]+).xhtml" access="hasPermission(extractGroup('$1', '/([a-z]+).xhtml'))" />

Во время выполнения метод extractGroup(...) сможет использовать текущий HttpRequest. Это решение будет иметь два недостатка: 1) это не так просто сделать 2) шаблон регулярного выражения будет продублирован в вашей конфигурации. Если вас это устраивает, вы можете прочитать, как добавить пользовательское выражение веб-безопасности здесь.

30.01.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..