2014-09-13 3 views
1

Grails Application에서 작업 중입니다. 나는 Jaxr Plugin을 사용하여 RestApi를 만들었다. 나중에 Spring Security Core Plugin을 추가하여 리소스를 인증하고 인증했습니다. 이 Spring Security Core Plugin을 추가하면 REST API가 작동을 멈춘다. Exception While Using Rest API developed using JAX-RS Plugin with Spring Security Core PluginSpring Security Rest Plugin으로 작업 할 때 발생하는 문제

그래서 Spring Security Rest Plugin을 사용하여 Rest API를 보안 화했다. 나는 전체 문서를 따랐다. 인증 토큰을 생성하는 데 성공했습니다.

grails.plugin.springsecurity.controllerAnnotations.staticRules = [ 
.... 
'/MediaSenseEvents/SessionEvents': ['permitAll'], 
.... 
]  
: 나는 너무 API 호출에 대한 경로를 추가 한,

grails.plugin.springsecurity.filterChain.chainMap = [ 
    '/MediaSenseEvents/SessionEvents': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter', // Stateless chain 
    '/MediaSenseEvents/login': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter', // Stateless chain 
    '/**': 'JOINED_FILTERS,-restTokenValidationFilter,-restExceptionTranslationFilter'           // Traditional chain 

]

그리고 다음은

내가 확인하기 위해 체인 맵을 추가 내 Config.groovy 파일의 파일 부분입니다

여기 '/ MediaSenseEvents/SessionEvents'는 내 API 호출 경로입니다. 는 '/ MediaSenseEvents/로그인'

그리고이 API 호출을 수신 내 이벤트 리스너 클래스입니다 그것에 =을 그리고 만들 endpointUrl :

@Path('/MediaSenseEvents/SessionEvents') 
class EventsListener { 

@POST 
//@Consumes("application/x-www-form-urlencoded") 
@Consumes("application/json") 
//@Secured(['permitAll']) 
public String postRequest(String message, @Context HttpServletRequest request) throws IOException  { 
........... 
} 

지금, 나는 내가 어떻게 사용하는지 이것을 이해 드릴 수 없습니다 내 REST API 호출을 보호하기 위해 생성 된 토큰. 아직 REST API 호출을 할 수 없으며 JAXR PlugIn을 사용하여 나머지 API를 구현합니다.

+0

정적 규칙이 올바르게 처리되지 않았다고 생각합니다. '@ Secure' 주석으로 대신 해봤습니까? 또한, 나는 무슨 일이 일어나고 있는지 전체 디버그 출력을 볼 필요가있다. –

답변

0

Config.groovy를 공유 할 수 있습니까? 재산을

grails.plugin.springsecurity.rest.token.validation.headerName = 'X-Auth-Token' 
을 다음에 봐

grails.plugin.springsecurity.filterChain.chainMap = [ 
    '/v1/secure/api/**':'restTokenValidationFilter,restExceptionTranslationFilter,filterInvocationInterceptor',// Stateless chain 
] 

그리고 헤더 매개 변수 이름을 변경하려면, 헤더에 생성 된 토큰을 보내 : 당신은 뭔가를 확인하기 위해 체인 맵에 URL을 추가했습니다

+0

체인 맵 매개 변수와 함께 Config.groovy 파일을 추가했습니다. 저쪽에 다 괜찮은거야? –

+0

업데이트 : API 호출 중에 유효성 검사 헤더 이름을 지정하기 전에 오류가 발생했습니다 : 401-Unauthorized 하지만 생성 된 토큰과 함께 유효성 검사 헤더 이름을 지정하면 오류가 발생합니다 : 403-Forbidden –

관련 문제