Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Message Broker & WS-Security / 1 сообщений из 1, страница 1 из 1
16.10.2012, 18:02
    #38001031
Vincent Vega
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Message Broker & WS-Security
Добрый день.

Есть WSDL со следущим разделом Policy.
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
	<wsp:Policy wsu:Id="WSHttpBinding_ID_policy">
		<wsp:ExactlyOne>
			<wsp:All>
				<sp:TransportBinding
					xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
					<wsp:Policy>
						<sp:TransportToken>
							<wsp:Policy>
								<sp:HttpsToken RequireClientCertificate="false" />
							</wsp:Policy>
						</sp:TransportToken>
						<sp:AlgorithmSuite>
							<wsp:Policy>
								<sp:Basic256 />
							</wsp:Policy>
						</sp:AlgorithmSuite>
						<sp:Layout>
							<wsp:Policy>
								<sp:Strict />
							</wsp:Policy>
						</sp:Layout>
						<sp:IncludeTimestamp />
					</wsp:Policy>
				</sp:TransportBinding>
				<sp:EndorsingSupportingTokens
					xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
					<wsp:Policy>
						<sp:SecureConversationToken
							sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
							<wsp:Policy>
								<sp:BootstrapPolicy>
									<wsp:Policy>
										<sp:SignedParts>
											<sp:Body />
											<sp:Header Name="To"
												Namespace="http://www.w3.org/2005/08/addressing" />
											<sp:Header Name="From"
												Namespace="http://www.w3.org/2005/08/addressing" />
											<sp:Header Name="FaultTo"
												Namespace="http://www.w3.org/2005/08/addressing" />
											<sp:Header Name="ReplyTo"
												Namespace="http://www.w3.org/2005/08/addressing" />
											<sp:Header Name="MessageID"
												Namespace="http://www.w3.org/2005/08/addressing" />
											<sp:Header Name="RelatesTo"
												Namespace="http://www.w3.org/2005/08/addressing" />
											<sp:Header Name="Action"
												Namespace="http://www.w3.org/2005/08/addressing" />
										</sp:SignedParts>
										<sp:EncryptedParts>
											<sp:Body />
										</sp:EncryptedParts>
										<sp:TransportBinding>
											<wsp:Policy>
												<sp:TransportToken>
													<wsp:Policy>
														<sp:HttpsToken RequireClientCertificate="false" />
													</wsp:Policy>
												</sp:TransportToken>
												<sp:AlgorithmSuite>
													<wsp:Policy>
														<sp:Basic256 />
													</wsp:Policy>
												</sp:AlgorithmSuite>
												<sp:Layout>
													<wsp:Policy>
														<sp:Strict />
													</wsp:Policy>
												</sp:Layout>
												<sp:IncludeTimestamp />
											</wsp:Policy>
										</sp:TransportBinding>
										<sp:SignedSupportingTokens>
											<wsp:Policy>
												<sp:UsernameToken
													sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
													<wsp:Policy>
														<sp:WssUsernameToken10 />
													</wsp:Policy>
												</sp:UsernameToken>
											</wsp:Policy>
										</sp:SignedSupportingTokens>
										<sp:Wss11>
											<wsp:Policy />
										</sp:Wss11>
										<sp:Trust10>
											<wsp:Policy>
												<sp:MustSupportIssuedTokens />
												<sp:RequireClientEntropy />
												<sp:RequireServerEntropy />
											</wsp:Policy>
										</sp:Trust10>
									</wsp:Policy>
								</sp:BootstrapPolicy>
							</wsp:Policy>
						</sp:SecureConversationToken>
					</wsp:Policy>
				</sp:EndorsingSupportingTokens>
				<sp:Wss11 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
					<wsp:Policy />
				</sp:Wss11>
				<sp:Trust10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
					<wsp:Policy>
						<sp:MustSupportIssuedTokens />
						<sp:RequireClientEntropy />
						<sp:RequireServerEntropy />
					</wsp:Policy>
				</sp:Trust10>
				<wsaw:UsingAddressing />
			</wsp:All>
		</wsp:ExactlyOne>
	</wsp:Policy>



У меня возникла проблема с реализацией авторизации. Что я сделал:

1. Простой тестовый поток
MQInput -> Compute -> SOAPRequest ->
В Compute прописал

Код: plsql
1.
2.
3.
4.
		
SET OutputRoot.Properties.IdentitySourceType = 'usernameAndPassword';
SET OutputRoot.Properties.IdentitySourceToken = 'ххх';
SET OutputRoot.Properties.IdentitySourcePassword = 'yyyyy;



2. На брокере создал Policy Set (указал UserName authentication token) и Polisy Set Binding. Привязал эти политику в BAR файле

В итоге SOPARequest генерирует вот такой запрос:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
	<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
		<s:Security
			xmlns:s="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
			xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
			soapenv:mustUnderstand="1">
			<s:UsernameToken u:Id="unt_20">
				<s:Username>xxx</s:Username>
				<s:Password
					Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">yyyyyy</s:Password>
			</s:UsernameToken>
		</s:Security>
		<wsa:To>http://xxxxxxxx
		</wsa:To>
		<wsa:ReplyTo>
			<wsa:Address>http://www.w3.org/2005/08/addressing/anonymous
			</wsa:Address>
		</wsa:ReplyTo>
		<wsa:MessageID>urn:uuid:8E42EA41DC2B2CE91A1350300865332
		</wsa:MessageID>
		<wsa:Action>http://xxxxxxxx
		</wsa:Action>
	</soapenv:Header>
	<soapenv:Body>
....



На который получаю следующий ответ:

Код: plaintext
1.
2.
3.
4.
5.
6.
Reason
	Text:CHARACTER:The message could not be processed. This is most likely because the action 'http://xxxxxx' is incorrect or 
because the message contains an invalid or expired security context token or because there is a mismatch between bindings. The
 security context token would be invalid if the service aborted the channel due to inactivity. 
To prevent the service from aborting idle sessions prematurely increase the Receive timeout on the service endpoint's binding.
			lang:CHARACTER:en-US

Первое что бросается в глаза это отсутствие в запросе раздела IncludeTimestamp. Как его добавить?
На сколько я понимаю он должен выглядеть вот так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
		<o:Security s:mustUnderstand="1"
			xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
			<u:Timestamp u:Id="_0">
				<u:Created>2012-10-16T07:47:50.291Z</u:Created>
				<u:Expires>2012-10-16T07:52:50.291Z</u:Expires>
			</u:Timestamp>
		</o:Security>



Возможно я еще где-то ошибся.

WMB: 7.0.0.3
Веб сервис вызывается по https, Сертификат добавил в keystore.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Message Broker & WS-Security / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]