2009-10-12 5 views
0

I 다음 프로젝트 구조 가지고@Secured 서비스 방법 및 스프링 WS

베이스 프로젝트 (서비스 계층 모델) 웹 프로젝트 웹 서비스 프로젝트

웹 프로젝트 웹 서비스 프로젝트 모두 의존 기본 프로젝트에 제공하고이를 통해 제공되는 서비스를 사용하십시오.

나는 서비스를 의미 스프링 프레임 워크를 많이 사용이 @Secured 주석과 봄 보안에 의해 보호 방법과 봄 콩되어 있는지 확인하십시오. 유권자을 작성하여 클라이언트 권한을 검사하는 AbstractAclVoter를 확장했습니다.

웹 프로젝트는 스프링 MVC를 사용하고 @Endpoint 주석과 웹 서비스 프로젝트 봄 WSXwsSecurityInterceptor. 여기

내 문제입니다 : 전화가 웹 프로젝트 컨트롤러 또는 기본 프로젝트의 JUnit 테스트에 제공하지만 웹 서비스 프로젝트에서 요청이 올바른 권한을 확인하지 않으면 권한이 선택되어

- 내 유권자이 (가) 호출되지 않았습니다!

  • XwsSecurityInterceptor 함께 할 수있는이 일을 했습니까?
  • 웹 서비스 프로젝트에서도 DelegatingFilterProxy이 필요합니까?
+0

일부 코드가 도움이 될 것 같습니다. – sfussenegger

답변

1

권한이 부여 된 권한이있는 사용자 인증 개체는 웹 서비스 프로젝트가 아닌 웹 컨텍스트에서만 사용할 수 있습니다. 웹 서비스 응용 프로그램에 전화를 걸면 거기에 같은 보안 컨텍스트가 없습니다. 따라서 보안 태그가 그 곳에서 작동하지 않습니다.

+0

하지만 이것은 SOAP 요청에서 XwsSecurityInterceptor와 보안 헤더를 사용하는 대신 SOAP 요청에 대한 기본 인증을 수행해야한다는 의미일까요? –

+0

내 질문보기 (http://stackoverflow.com/questions/10294517/propagate-spring-security-from-webapp-to-soap-webservice/10295617#10295617) –

0

스프링 시큐리티는 웹 응용 프로그램의 서블릿 필터로 통합 (모든 것이 MessageDispatcherServlet의 설정에 의해 구성되어 있기 때문에 나는 아무의 ContextLoaderListener가 있다). 따라서 DelegatingFilterProxy는 웹 서비스 프로젝트에 대한 web.xml에 추가되어 해당 응용 프로그램에 대한 요청을 처리 할 수 ​​있어야한다고 가정합니다.

관련 문제