2014-12-23 4 views
1

spring-security-core (2.0-RC4)를 사용하여 정적 보안 매핑에 문제가 있습니다. grails에서 spring-security-core를 사용하는 정적 보안 매핑 2.4.3

'/app/client/**':     ['IS_AUTHENTICATED_FULLY'], 
'/app/items/**':     ['permitAll'], 

이 구성 (또는 스위칭 참/거짓 값) 제가

/app/items/Books 

액세스하려고하면

grails.plugin.springsecurity.rejectIfNoRule = true 
grails.plugin.springsecurity.fii.rejectPublicInvocations = false 

난 (설정 파라미터에 따라) 500분의 403 얻을 . 내가 액세스 할 수있는 유일한 방법은 양쪽 구성 속성이 false 일 때 나는 피하려고하는 낙관적 인 접근으로 끝납니다.

패턴에 문제가 있습니까? comeone은 후드에서 일어날 수있는 일에 대해 밝힐 수 있습니까?

감사합니다,

UPDATE :

'/':        ['permitAll'], 
'/index':       ['permitAll'], 
'/index.gsp':      ['permitAll'], 
'/assets/**':      ['permitAll'], 
'/**/js/**':      ['permitAll'], 
'/**/css/**':      ['permitAll'], 
'/**/images/**':     ['permitAll'], 
'/**/favicon.ico':     ['permitAll'], 
+0

패턴이는 "ifNoRule"제한을 트리거처럼 동작하기 때문에 mathced되지 ...하지만 이유를 이해하지 못하는 것 같다. – Rafael

+0

패턴에는 응용 프로그램의 이름이 포함되면 안됩니다. 예 : '/ clients/**'및'/ items/**' –

+0

app은 내 응용 프로그램의 이름이 아닙니다 ... 내 API 호출을 구성하려는 것입니다. – Rafael

답변

0

true로 설정 속성을 사용하고 있기 때문에, 당신은 무의식적으로 에서 루트 URL의 예에 대한 액세스를 차단했습니다 UPDATE

grails.plugin.springsecurity.rest.login.active = true grails.plugin.springsecurity.rest.token.storage.useGorm = true grails.plugin.springsecurity.rest.token.storage.gorm.tokenDomainClassName = 'com.moviesxd.api.domain.AuthenticationToken' grails.plugin.springsecurity.rest.token.storage.gorm.tokenValuePropertyName = 'tokenValue' grails.plugin.springsecurity.rest.token.storage.gorm.usernamePropertyName = 'username' grails.plugin.springsecurity.securityConfigType = "Annotation" grails.plugin.springsecurity.rest.token.validation.enableAnonymousAccess = true //Workaround for weird responses when using a bearer token grails.plugin.springsecurity.rest.token.validation.useBearerToken = false grails.plugin.springsecurity.rest.login.active = true grails.plugin.springsecurity.rest.login.endpointUrl = '/security/login' grails.plugin.springsecurity.rest.logout.endpointUrl = '/security/logout' grails.plugin.springsecurity.rest.login.failureStatusCode = 401 grails.plugin.springsecurity.rest.login.useJsonCredentials = true grails.plugin.springsecurity.rest.login.usernamePropertyName = 'username' grails.plugin.springsecurity.rest.login.passwordPropertyName = 'password' grails.plugin.springsecurity.rest.token.validation.headerName = 'X-Auth-Token' 

/
. 그래서 다음과 같은 규칙을 수정하여 해당 규칙을 허용 :

'/':        ['permitAll'], 
'/index':       ['permitAll'], 
'/index.gsp':      ['permitAll'], 
'/app/client/**':     ['IS_AUTHENTICATED_FULLY'], 
'/app/items/**':     ['permitAll'] 

더 많은 정보를 원하시면 here을 읽어보십시오.
희망이 도움이됩니다.

감사합니다,
SA

+0

감사합니다 SA ... 그러나 나는 이미 그러한 리소스를 permitAll로 선언했습니다. 질문 텍스트에 업데이트를 배치했습니다. – Rafael

+0

좋아요, 당신의지도는 index.gsp 또는 다른 곳으로 매핑 되었습니까? 또는 루트 URL에 액세스 할 수 있습니까? –