У меня есть веб-приложение, разработанное с использованием весеннего mvc и весенней безопасности 3.2. Я хочу, чтобы мое приложение использовало HTTP-аутентификацию для восстановления обслуживания и авторизацию входа в систему для другой части. Ниже моя конфигурация безопасности:Весна безопасности, либо http basic, либо авторизация входа в систему
<http pattern="/services/**" create-session="stateless" use-expressions="true">
<intercept-url pattern="/**" access="hasRole('ROLE_REMOTE,ROLE_USER')"/>
<http-basic />
</http>
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/static/**" access="permitAll" />
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<form-login login-page="/login.do" always-use-default-target="true" default-target-url="/main.do" />
<logout invalidate-session="true" logout-success-url="/login.do"
logout-url="/j_spring_security_logout" />
</http>
, что я ожидаю: когда пользователь Войти из формы, то она может вызвать успокоительную службу без пройти базовую аутентификацию (Поскольку он был идентифицирован). Моя мысль заключается в том, что пользователь с ролью «ROLE_USER» также должен вызвать службу обслуживания. Однако, что я получил после того, как я вышел из формы, мне также было предложено выполнить базовую проверку подлинности, пытаясь вызвать службу обслуживания из браузера.
Есть ли способ получить то, что я ожидаю?
Это работает, спасибо. –
Как вы справляетесь с проблемой того, что пользователь все равно получит сообщение об ошибке HTTP 401 Unauthorized, если истек срок действия сеанса из входа на основе формы. Это заставляет браузер отображать базовое диалоговое окно проверки подлинности. – lanoxx