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

Spring Security Login всегда получает отказ в доступе

Я пытаюсь изучить весеннюю безопасность, поэтому я загрузил пример проекта, а затем попытался реализовать это решение для своего проекта. Но когда я пытаюсь отправить форму входа, я всегда получаю страницу 403, которая определена в applicationContext-security .xml. Но я ожидал, что это «URL-адрес отказа аутентификации» для неверного имени пользователя/пароля или «целевой URL-адрес по умолчанию» для правильного имени пользователя/пароля, а не «обработчик отказа в доступе»/запрещен (моя страница 403). Буду очень признателен, если кто-нибудь из более опытных сможет мне помочь. приложение-Security.xml

<security:http security="none" pattern="/public/**"/>
<security:http security="none" pattern="/login*"/>
<security:http security="none" pattern="/maxSessionError*"/>
<security:http security="none" pattern="/forbidden*"/>
<security:http use-expressions="true">
    <security:intercept-url pattern="/**" access="isAuthenticated()"/>
    <security:form-login login-page="/login"
                         default-target-url="/home"
                         authentication-failure-url="/login"
                         authentication-success-handler-ref="loginSuccessHandler"
    />
    <security:logout  invalidate-session="true"  delete-cookies="true" success-handler-ref="logoutSuccessHandler" />
    <security:access-denied-handler error-page="/forbidden"/>
    <security:session-management session-fixation-protection="newSession" >
        <security:concurrency-control max-sessions="1" error-if-maximum-exceeded="false"  expired-url="/maxSessionError" />
    </security:session-management>

    <security:custom-filter ref="xunxiSecurityInterceptor" before="FILTER_SECURITY_INTERCEPTOR" />
</security:http>

логин.jsp

<form action="<%=request.getContextPath()%>/j_spring_security_check" method="post" class="login-form"  id="login-form" >
        <label>Username</label>
        <input type="text" placeholder="username" name="j_username"/>
        <label>Password</label>
        <input type="password" placeholder="password" name="j_password"/>
        <label>
        <input type="checkbox" name="_spring_security_remember_me" /> Remember me </label>
        <button type="submit" >
            Login
        </button>
    </div>
</form>
03.11.2015

  • Какую версию Spring Security вы используете? 03.11.2015
  • пружина 4.2.2 пружинная безопасность 4.0.2 03.11.2015

Ответы:


1

Вы пишете, что ваша версия Spring Security — 4.0.2, но ваш JSP, похоже, написан для Spring Security 3. Перенесите ваш JSP:

  • Измените URL-адрес обработки входа (действие формы) на /login.

  • Измените имена входов на username и password.

  • Добавьте элемент ввода для защиты от CSRF: <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>. Защита CSRF включена по умолчанию из Spring Security 4.

03.11.2015
  • Да, это работает. Я пройдусь по ссылке на документ Spring Security 4.0.2. Спасибо 04.11.2015
  • Новые материалы

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

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

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

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

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

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

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