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

Есть 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
1 сообщений из 1, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Message Broker & WS-Security
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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