Grails Spring Security REST Получение файла cookie сеанса

Я создаю приложение Grails и использую spring-security-core-3.2.0 и spring-security-rest/2.0.0. Все работает нормально, и я могу войти в свое веб-приложение, а также могу использовать токен JWT для аутентификации/общения в режиме RESTful. Однако при вызовах REST я все еще получаю токен JSESSIONID. Поскольку REST не имеет состояния, я бы не ожидал сеанса. Кажется, я не могу найти параметр конфигурации для этого. Есть ли способ отключить создание сеансов для вызовов RESTful?

Вот как я вижу, что я получаю сеанс:

curl -D headers.txt -H "Content-Type: application/json" -X POST -d '{"username":"xxxxx","password":"xxxxxx"}' http://xxxx:8080/api/login

Проверяя headers.txt, я вижу:

HTTP/1.1 200 
Cache-Control: no-store
Pragma: no-cache
Set-Cookie: JSESSIONID=3004A67F66933E639E68D79FA1E1CA88; Path=/; HttpOnly
Content-Type: application/json;charset=UTF-8
Content-Length: 2247
Date: Sun, 12 Nov 2017 16:57:40 GMT

person Chip L    schedule 13.11.2017    source источник


Ответы (1)


Я нашел ответ в документации всех мест. :-)

Все дело в цепочке фильтров и в том, какие шаблоны URL должны быть без гражданства, а какие нет. Я добавил следующую карту в application.groovy в grails.plugin.springsecurity.filterChain.chainMap:

[pattern: '/api/**',
  filters: 'JOINED_FILTERS,-anonymousAuthenticationFilter,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter'
]

Полная настройка:

grails.plugin.springsecurity.filterChain.chainMap = [
    [pattern: '/assets/**',      filters: 'none'],
    [pattern: '/**/js/**',       filters: 'none'],
    [pattern: '/**/css/**',      filters: 'none'],
    [pattern: '/**/images/**',   filters: 'none'],
    [pattern: '/**/favicon.ico', filters: 'none'],
    [pattern: '/api/**',
      filters: 'JOINED_FILTERS,-anonymousAuthenticationFilter,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter'
    ],
    [pattern: '/**',             filters: 'JOINED_FILTERS']
]
person Chip L    schedule 09.03.2018