Neste post vou mostrar como fazer a chamada do serviço rest que foi gerado no post intellij, spring boot and rest via OSB 11g.
Passos:
1-) Crie um Business Service com as seguintes configurações:
Service Type: Messaging Service
Request Message Type: Text
Response Message Type: Text
Endpoint URI: http://localhost:8090/mytest
2-) Crie um Proxy service e defina no WSDL duas operações, uma para chamada via Method GET e outra para POST.
3-) Inclua um "Route" e depois "Routing" na operação "getOperation" e aponte para o Business Service que criamos.
4-) Insira um "Message Processing" do tipo "Insert" com as seguintes configurações:
Expression: <http:relative-URI>/myGetMethod</http:relative-URI>
Location: "as last child of"
XPath: ./ctx:transport/ctx:request
In Variable: outbound
5-) Faça a mesma coisa do passo anterior para as seguintes configurações:
Expression: <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
Location: "as last child of"
XPath: ./ctx:transport/ctx:request
In Variable: outbound
Expression: <http:http-method>GET</http:http-method>
Location: "as last child of"
XPath: ./ctx:transport/ctx:request
In Variable: outbound
6-) Insira um "Stage Actions" do tipo "Transport headers" e inclua as seguintes configurações:
http Content-Type: 'application/json'
http Accept: 'application/json'
7-) Em "Response Action" inclua um "Message Processing" do tipo "Assign" com os seguintes valores:
Expression: $body/text()
Variable: myTestResponse
8-) Iinclua um "Message Processing" do tipo "Replace" com os seguintes valores:
XPath: .
In Variable: body
Expression:
<br:getOperationResponse>
<out>{data($myTestResponse)}</out>
</br:getOperationResponse>
Replace node contents: true
9-) Agora vamos a operação "postOperation".
Inclua um "Route" e depois "Routing" na operação "getOperation" e aponte para o Business Service que criamos.
11-) Neste metodo exige parametros de entrada, vamos incluir um "Message Processing" do tipo "Replace" com os seguintes valores:
XPath: .
In Variable: body
Expression:
fn:concat('{"firstName":"',data($body/br:postOperationRequest/firstName),
'","lastName":"',data($body/br:postOperationRequest/lastName),
'"}') Replace node contents: true
10-) Insira os "Message Processing" do tipo "Insert" com as seguintes configurações:
Expression: <http:relative-URI>/myPostMethod</http:relative-URI>
Location: "as last child of"
XPath: ./ctx:transport/ctx:request
In Variable: outbound
Expression: <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
Location: "as last child of"
XPath: ./ctx:transport/ctx:request
In Variable: outbound
Expression: <http:http-method>POST</http:http-method>
Location: "as last child of"
XPath: ./ctx:transport/ctx:request
In Variable: outbound
11-) Insira um "Stage Actions" do tipo "Transport headers" e inclua as seguintes configurações:
http Content-Type: 'application/json'
http Accept: 'application/json'
12-) Em "Response Action" inclua um "Message Processing" do tipo "Assign" com os seguintes valores:
Expression: $body/text()
Variable: myTestResponse
13-) Inclua um "Message Processing" do tipo "Replace" com os seguintes valores:
XPath: .
In Variable: body
Expression:
<br:postOperationResponse>
<message>{data($myTestResponse)}</message>
</br:postOperationResponse> Replace node contents: true
14-) Resultado:
getOperation:
postOperation:
Obs: Para tratar o retorno ou mesmo no request no formato JSON, não existe uma tratativa nesta versão do OSB, para se fazer isso, gere uma lib em java com os frameworks existentes no mercado como o GSON da google e execute um "Java Callout" para fazer as transformações de XML para JSON e vise versa.
Mostrando postagens com marcador OSB 11g. Mostrar todas as postagens
Mostrando postagens com marcador OSB 11g. Mostrar todas as postagens
domingo, 7 de maio de 2017
segunda-feira, 1 de maio de 2017
Consumindo serviço com Client Authentication no OSB 11g
Neste post irei demonstrar como consumir serviço que exija a configuração de "client authentication" (SSL Two way).
Os passos para fazer o import do certificado com chave publica se encontra no meu post "Weblogic and Wildcard SSL certificate".
Vamos configurar um JKS para nosso certificado com a chave privada para a autenticação.
Passos:
1-) Gerar um JKS com a chave privada:
keytool -importkeystore -srckeystore myPrivateKey.p12 -srcstoretype pkcs12 -destkeystore clientAuth.jks -deststoretype jks
Listar o certificado que foi importado:
keytool -list -storepass mystorepass -keystore clientAuth.jks
Altere o alias:
keytool -changealias -alias "imported certificate" -destalias "myPrivatekey" -keystore clientAuth.jks -storepass mystorepass
2-) Configurar um "PKI Credential Mapper"
Preencha o campo "Name" e em "Type" selecione "PKICredentialMapper"
Click em "OK"
Click em "PKICredentialMapper"
Click na aba "Provider Specific"
Prencha os campos:
Keystore File Name: <PATH DO JKS GERADO>/clientAuth.jks
Keystore Pass Phrase: mystorepass
Confirm Keystore Pass Phrase: mystorepass
Click em "Save" e faça restart no server.
3-) Configurações no sbconsole:
Obs: As configurações que irei demonstrar a seguir podem ser feito no OEPE.
Criando um Service Key Provider
Em SSL Client Authentication Key click em "Browser"
No campo password preencha com a senha da chave privada e não do JKS.
Click em "Save"
Configure o Business Service para usar "Client Authentication"
Altere o Proxy Service para utilizar o Service Key Provider que criamos, vá no proxy e selecione a aba "Security"
Quando executar o serviço, verá na variável inbound o provider.
Os passos para fazer o import do certificado com chave publica se encontra no meu post "Weblogic and Wildcard SSL certificate".
Vamos configurar um JKS para nosso certificado com a chave privada para a autenticação.
Passos:
1-) Gerar um JKS com a chave privada:
keytool -importkeystore -srckeystore myPrivateKey.p12 -srcstoretype pkcs12 -destkeystore clientAuth.jks -deststoretype jks
Listar o certificado que foi importado:
keytool -list -storepass mystorepass -keystore clientAuth.jks
Altere o alias:
keytool -changealias -alias "imported certificate" -destalias "myPrivatekey" -keystore clientAuth.jks -storepass mystorepass
2-) Configurar um "PKI Credential Mapper"
- Faça login no console do Weblogic
Vá em Security Realms -> myrealm -> Providers -> Credential Mapping - Click em "new"
Preencha o campo "Name" e em "Type" selecione "PKICredentialMapper"
Click em "OK"
Click em "PKICredentialMapper"
Click na aba "Provider Specific"
Prencha os campos:
Keystore File Name: <PATH DO JKS GERADO>/clientAuth.jks
Keystore Pass Phrase: mystorepass
Confirm Keystore Pass Phrase: mystorepass
Click em "Save" e faça restart no server.
3-) Configurações no sbconsole:
Obs: As configurações que irei demonstrar a seguir podem ser feito no OEPE.
Criando um Service Key Provider
Em SSL Client Authentication Key click em "Browser"
No campo password preencha com a senha da chave privada e não do JKS.
Click em "Save"
Configure o Business Service para usar "Client Authentication"
Altere o Proxy Service para utilizar o Service Key Provider que criamos, vá no proxy e selecione a aba "Security"
Quando executar o serviço, verá na variável inbound o provider.
Assinar:
Postagens (Atom)


























