2012-07-31 4 views
0

WSO2 Carbon 서버에서 프로그래밍 방식으로 서비스를 보호하기위한 코드를 작성하려고합니다. JSP 보안 코드를 해체하여 SecurityAdminService를 사용하여 실제로 보안 작업을 실행한다는 것을 알았습니다. 나는 성공적으로 SecurityAdminService에 메시지를 내보내지만, 얻을 다음과 같은 오류입니다 :WSO2 Carbon - 프로그래밍 방식으로 보안 적용

<soapenv:Fault xmlns:axis2ns1="http://schemas.xmlsoap.org/soap/envelope/"> 
    <faultcode>axis2ns1:50977</faultcode> 
    <faultstring>Access Denied. Please login first.</faultstring> 
    <detail/> 
</soapenv:Fault> 

이 정말 예상치 못한되지 않습니다,하지만 난이 요청에 사용자 자격 증명을 전달 할 수있는 방법을 알아낼 수 없습니다. JSP 코드는 쿠키를 통해 로그인 및 자격 증명 처리를 수행하므로 여기서는별로 도움이되지 않습니다. 요청과 동시에 승인을 처리 할 수있는 방법이 있습니까? 또는 JSP 페이지가 수행하는 작업과 POST를 로그인 URL에 복사하고 세션 쿠키를 요청에 복사해야합니까?

답변

2

관리자 서비스를 호출하기 전에 먼저 AuthenticationAdmin 서비스를 호출하고 유효한 사용자로 (carbon userstore에 대해) 인증을 받아야합니다. AuthenticationAdminStub를 사용하여 쉽게 사용자 이름, 비밀번호 및 백엔드 서버의 호스트 이름/IP를 제공하는 로그인 메소드를 호출하여이를 수행 할 수 있습니다. 그러면 이미 구현 한 것을 성공적으로 진행할 수 있습니다.

감사합니다, Prabath

+0

)은 (내가 전화 후 API가 자동으로 AuthenticationAdminStub 번호 로그인 세션 쿠키를 저장합니까? –

+0

성공적으로 로그인 할 수 있었다면 관련 스텁에서 ServiceContext를 검색 한 다음 속성으로 저장되어있는 세션 쿠키를 검색 할 수 있습니다. 예를 들어 다음 코드 스 니펫은이를 가져옵니다. –

+1

serviceContext = authenticationAdminStub._getServiceClient(). getLastOperationContext(). getServiceContext(); sessionCookie = (String) serviceContext.getProperty (HTTPConstants.COOKIE_STRING); –

관련 문제