2017-11-13 8 views
0

Grails 애플리케이션을 빌드 중이며 spring-security-core-3.2.0과 spring-security-rest/2.0.0을 사용하고 있습니다. 모두 잘 작동하고 있으며 내 웹 앱에 로그인 할 수 있으며 JWT 토큰을 사용하여 RESTful 방식으로 인증/통신 할 수도 있습니다. 그러나 REST 호출과 함께 JSESSIONID 토큰을 여전히 얻고있다. REST는 상태 비 저장이므로 세션을 기대하지는 않습니다. 이것에 대한 구성 옵션을 찾을 수없는 것 같습니다. RESTful 호출을 위해 세션을 만들지 못하게하는 방법이 있습니까? 내가 세션을 얻고있다 참조하는 방법Grails Spring Security REST - 세션 쿠키 받기

이는 다음과 같습니다

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 

답변

0

나는 모든 장소의 문서에 답을 발견했다. :-)

모든 것은 필터 체인과 URL 패턴이 무 상태이고 어떤 패턴이 그렇지 않은지에 관한 것입니다.

[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'] 
] 
나는 grails.plugin.springsecurity.filterChain.chainMap에 application.groovy하려면 다음지도를 추가