Как отключить вход на основе весенней формы для конечных точек RESTful?

У меня настроена безопасность spring -с использованием базовой аутентификации и аутентификации на основе форм в соответствии с auto-config='true'.

Я хотел бы, чтобы конечные точки под /api/**НЕ использовали безопасность на основе формы. Другие конечные точки за пределами /api/**должны использовать вход на основе формы. Я хотел бы, чтобы ответ 401отправлялся на любой вызов этих конечных точек, которые не предоставили учетные данные в /api/**.

ОБНОВЛЕНИЕ:Благодаря комментарию Люка Тейлора ниже я нашел следующее решение.

ПРИМЕЧАНИЕ:Этот метод можно применять только начиная с весны -безопасности 3.1.

Сначала я выделяю /api/**. Мы никогда не создаем сеанс, хотя используем его, если он доступен, это обрабатывается create-session="never"и использованием <session-management/>.

<http pattern="/api/**" create-session="never" use-expressions="true">
    <http-basic />
    <session-management />
    <intercept-url pattern="/api/**" access="hasRole('API_ACCESS')"/>
</http>

<http auto-config="true" use-expressions="true">
    <intercept-url pattern="/" access="permitAll"/>
    <intercept-url pattern="/**" access="isAuthenticated()"/>
</http>
10
задан Brett Ryan 15 August 2012 в 02:07
поделиться