2017-01-04 2 views
0

나는 https를 통해 webservice를 호출하는 작업을 수행하고 있습니다. WSDL에 자체는 다음과 같은 보안에 대한 정보 포함 - 프로그래밍 방식으로 웹 서비스에 보안을 추가하는 방법

<wsid:Identity xmlns:wsid="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity"> 
<dsig:KeyInfo xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> 
<dsig:X509Data> 
<dsig:X509Certificate> 
**XXX** 
</dsig:X509Certificate> 
<dsig:X509IssuerSerial>...</dsig:X509IssuerSerial> 
<dsig:X509SubjectName>CN=FAEncryption, DC=cloud, DC=oracle, DC=com</dsig:X509SubjectName> 
<dsig:X509SKI>**ZZZ**</dsig:X509SKI> 
<dsig:X509Certificate> 
**YYY** 
</dsig:X509Certificate> 
</dsig:X509Data> 
</dsig:KeyInfo> 
</wsid:Identity> 

지금이 정보를 사용하여, 나는 다음과 같은 절차를 사용하여 인증서를 내놓았다 -

  1. 당신이 원하는 이름으로 새 파일을 만듭니다. 인증서 파일임을 나타 내기 위해 .cer 확장자를 변경해야합니다.

  2. 텍스트 편집기를 사용하여 방금 만든 파일을 열고 첫 줄에 "----- BEGIN CERTIFICATE -----"을 입력하십시오.

  3. 다음 줄에서 서비스 WSDL 파일의 Base64로 인 코드 된 인증서를 새로 만든 인증서 파일에 복사하십시오.

  4. 새 줄에 "----- END CERTIFICATE -----"를 추가하고 파일을 저장하십시오. 이제 서버의 공개 키가 들어있는 인증서가 있습니다.

  5. 명령 줄을 열고 디렉토리를 $ JAVA_HOME/bin으로 변경하십시오. 다음 명령을 사용하여 KeyStore를 만들고 인증서에서 공개 키를 가져옵니다.

wsdl에는 두 개의 인증서가 있습니다. 키 스토어에 둘 다 추가했습니다. 명령은 -

키 도구 -import -file ~/ddrive를/테스트/세부/SubmitFlow.cer -alias orakey1 -keypass 환영 -keystore ~ ​​/ ddrive를/테스트/세부/test.jks -storepass 환영

keytool -import -file ~/ddrive/test/details/SubmitFlow1.cer -alias orakey1 -keypass welcome -keystore ~ ​​/ ddrive/test/details/test.jks -storepass 환영합니다

처음에 나는 인증서. 그러나 나중에, 나는 둘 다 추가했다. 나는 web-service 호출을 만들기 위해 spring-ws를 사용한다. 그러나 나는 아직도 401 무단 호출을 얻는다.

무엇을해야하는지 설명하는 문서가 없습니다. 어떤 사람이 나를 안내 할 수 있다면 좋을 것입니다. 그런데 도움이 될 경우이 웹 서비스는 Oracle HCM과 관련이 있습니다.

답변

0

즉, WSDL 인증서를 JKS로 가져 왔지만 사용하지 않아 효과가 없습니다.

그러나 이것은 실제로 문제가되지 않습니다. 실제로 <wsid:Identity> 태그는 엔드 포인트의 신원을 확인할 수있는 방법에 대한 정보를 제공하지만 엔드 포인트의 유효성 검증 방법에 관한 정보는 제공하지 않습니다.

401-Unauthorized은 자격 증명을 제공하지 않았 음을 의미합니다. 먼저 웹 서버에서 사용자 이름 - 암호, 디지털 서명 등을 인증하는 방법을 알아야합니다.

경우에 따라 WSDL 자체에 예상 인증 방법이 포함 된 <wsp:Policy>이 포함되는 경우가 있습니다. 다른 경우에는 문서를보십시오. 당신이 선호하는 wsdl2java 도구를 사용하여 스텁을 생성하는 것이 좋습니다. wsp:policy

관련 문제