O Oracle WebCenter Portal Pagelet Producer (anteriormente chamado de Oracle WebCenter Ensemble) disponibiliza uma coleção de ferramentas uteis que facilitam o desenvolvimento de pagelets dinâmicos. Usando o Pagelet Producer, é possível expor portlets WSRP e Oracle JPDK como pagelets para uso em qualquer página ou aplicação web.
O Pagelet Producer Console é uma ferramenta de administração browser-based para criar e gerenciar os vários objetos em seu Pagelet Producer. Através do console é possível registrar aplicações web como recursos, criar pagelets, gerenciar proxy, transformações, e muito mais.
O Pagelet Producer Console é acessado por:
http://<host>:<port>/pagelets/admin
Pré-requisito
Projeto WLP com Portlet Remoto. Para criação, utilize o tutorial da Oracle: http://docs.oracle.com/cd/E35968_01/wlp.1035/e14235/chap_build_simple_remote.htm
Configurando o compatibilidade entre WebLogic Portal e WebCenter
Obs.: A compatibilidade com o WebCenter, só foi introduzida na versão 10.3 do WLP, por isso as configurações abaixo só funcionarão em aplicações que rodem em servidores com essa versão do WLP.
Devido a incompatibilidade entre a forma que o WLP e o WebCenter implementam certas operações WSRP (clonePortlet, destroyPortlets, importPortlets e exportPortlets), erros de autenticação de usuário podem ocorrer. Para prevenir erros de autenticação de usuário quando consumindo portlets do WLP em uma aplicação, faça o seguinte:
1. No servidor produtor WLP, crie um usuário para funcionar como um substituto para as operações WSRP listadas anteriormente. Esse usuário deve ser do grupo “Portal System Administrators”. Na imagem abaixo criei o usuário wc-wlp-user.
2. Acesse a view “Merged Projects” e copie o arquivo WEB-INF/wsrp-producer-config.xml para o projeto (clique com o botão direito sobre ele e selecione a opção “Copy to project”).
3. Abra o arquivo adicionado e inclua o elemento de segurança:
<security anonymousCloneDestroyUser="wc-wlp-user"/>
4. Salve as alterações e republique o projeto.
Com essas configurações, o servidor produtor WLP, automaticamente autenticará o usuário especificado, quando chamadas às quatro operações WSRP não-autenticadas forem recebidas. Essa autenticação automática só ocorre para as operações: clonePortlet, destroyPortlets, importPortlets e exportPortlets.
Configurando o WebCenter (Consumidor)
Obs. 1: É possível utilizar o domínio default do JDeveloper (IntegratedWebLogicServer) ou o domínio especifico do WebCenter Portal.
** Gerar chave **
1. Pelo terminal, acesse:
<WEBCENTER_HOME>/wlserver_10.3/server/bin
2. Para setar as variáveis de ambiente, execute:
No Linux: ./setWLSEnv.sh
No Windows: setWLSEnv.cmd
3. Para gerar uma nova chave, execute:
keytool -genkeypair -alias webcenter -keypass welcome1 -keyalg rsa -keysize 1024 -keystore webcenter.jks -storepass welcome1 -dname "CN=BR, OU=WEBCENTER"
** Exportar o certificado de chave pública **
1. Pelo terminal, acesse:
<WEBCENTER_HOME>/wlserver_10.3/server/bin
2. Para setar as variáveis de ambiente, execute:
No Linux: ./setWLSEnv.sh
No Windows: setWLSEnv.cmd
3. Para exportar o certificado para um arquivo, execute:
keytool -exportcert -alias webcenter -keypass welcome1 -keystore webcenter.jks -storepass welcome1 -file webcenter.cer
Configurando o WebLogic Portal (Produtor)
** Importar o certificado de chave pública dentro do repositório de chaves confiáveis do domínio produtor **
1. Copie o certificado para:
<WLP_HOME>/user_projects/domains/<WLP_DOMAIN>
2. Pelo terminal, acesse:
<WLP_HOME>/wlserver_10.3/server/bin
3. Para setar as variáveis de ambiente, execute:
No windows: setWLSEnv.cmd
No Linux: ./setWLSEnv.sh
4. Acesse:
<WLP_HOME>/user_projects/domains/<WLP_DOMAIN>
5. Para importar o certificado para o repositório de chaves confiáveis do domínio, execute:
keytool -importcert -keystore DemoTrust.jks -storepass DemoTrustKeyStorePassPhrase -file wckey.cer -alias wckey -keypass wckeypass
6. Na pergunta “Trust this certificate? [no]:”, digite yes e pressione Enter para adicionar o certificado.
7. Se o servidor estiver executando, reinicie-o.
** Modificar os templates WSDL da aplicação **
1. Acesse a view “Merged Projects” e copie os arquivos wsrp-wsdl-template.wsdl e wsrp-wsdl-template-v2.wsdl para o projeto (clique com o botão direito sobre ele e selecione a opção “Copy to project”).
2. Abra os arquivos adicionados e substitua o elemento <wsp:Policy> existente por:
<wsp:Policy wsu:Id="ProducerDefaultPolicy"/>
<wsp:Policy wsu:Id="WebCenterPolicy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<sp:AsymmetricBinding>
<wsp:Policy>
<sp:InitiatorToken>
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssX509V3Token10/>
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:InitiatorToken>
<sp:RecipientToken>
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never">
<wsp:Policy>
<sp:WssX509V3Token10/>
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:RecipientToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic128/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Lax/>
</wsp:Policy>
</sp:Layout>
<sp:OnlySignEntireHeadersAndBody/>
</wsp:Policy>
</sp:AsymmetricBinding>
<sp:SignedSupportingTokens>
<wsp:Policy>
<sp:SamlToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssSamlV11Token10/>
</wsp:Policy>
</sp:SamlToken>
</wsp:Policy>
</sp:SignedSupportingTokens>
<sp:Wss10>
<wsp:Policy>
<sp:MustSupportRefKeyIdentifier/>
<sp:MustSupportRefIssuerSerial/>
</wsp:Policy>
</sp:Wss10>
</wsp:Policy>
3. Salve as alterações.
** Modificar a configuração de politicas para web services da aplicação **
1. Acesse a view “Merged Projects” e copie o arquivo WEB-INF/weblogic-webservices-policy.xml para o projeto (clique com o botão direito sobre ele e selecione a opção “Copy to project”).
2. Substitua todo o conteúdo do arquivo por:
<?xml version='1.0' encoding='UTF-8'?>
<webservice-policy-ref xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Use WebLogic Server Admin Console to add new policies -->
<ref-name>WebCenter Policies for the WSRP Producer</ref-name>
<port-policy>
<port-name>WSRP_v2_Markup_Service</port-name>
<ws-policy>
<uri>#WebCenterPolicy</uri>
<direction>inbound</direction>
</ws-policy>
</port-policy>
<port-policy>
<port-name>WSRPBaseService</port-name>
<ws-policy>
<uri>#WebCenterPolicy</uri>
<direction>inbound</direction>
</ws-policy>
</port-policy>
<port-policy>
<port-name>WLP_WSRP_Ext_Service</port-name>
<ws-policy>
<uri>#WebCenterPolicy</uri>
<direction>inbound</direction>
</ws-policy>
</port-policy>
</webservice-policy-ref>
3. Salve as alterações e republique o projeto.
** Adicionar um novo registro no SAML Identity Asserter **
1. Abra o console do WebLogic Server e conecte-se.
2. Selecione Security Realms > myrealm > Providers > Authentication > SAMLIdentityAsserter > Management > Asserting Parties.
3. Na tabela Asserting Parties clique em New.
4. No menu selecione WSS/Sender Vouches.
5. No campo descrição insira WebCenter SAML token, e clique em OK.
6. Na tabela selecione o registro criado para editar, informe os parâmetros e salve.
Enabled | true (Selecione o checkbox) |
Target URL | default |
Issuer URI | www.oracle.com |
Registrar o WebLogic Portal Produtor no Pagelet Producer
1. Acesse o Pagelet Producer.
2. No menu a esquerda, selecione a opção Produtores.
3. Clique em Registrar.
4. Informe os parâmetros e clique em OK.
Nome | <APP_CONTEXT> |
URL | http://<WEBCENTER_HOST>:<WEBCENTER_PORT>/<APP_CONTEXT>/producer/wsrp-1.0/markup?WSDL |
Perfil de Token | Token SAML 1.0 de WSS com Integridade de Mensagens |
Usuário Default | rpc.auth.username |
Configurar o consumo do Pagelet Producer na aplicação
1. No JDeveloper, em Connections, clique com o botão direito e selecione a opção Pagelet Producer.
2. Informe os parâmetros e clique em OK.
Nome | WebCenterPagelet |
URL | http://<WEBCENTER_HOST>:<WEBCENTER_PORT>/pagelets/ |
Configuração de autenticação do Pagelet Producer
Para execução da aplicação no dominio default do JDeveloper deve ser executada a configuração de login do Pagelet Producer. Para execução da aplicação no dominio WebCenter Portal, deve ser executada a configuração de Propagação de identidade do Pagelet Producer.
** Configurar o login do Pagelet Producer **
Obs.: O dominio default do JDeveloper não é um dominio WebCenter Portal completo, por isso a propagação de identidade não funciona nele.
1. Acesse o Pagelet Producer.
2. Selecione o recurso a ser utilizado e depois a opção Copiar Recurso. É necessário criar uma cópia, pois o original não aceita modificações.
3. Selecione o recurso copiado e selecione a opção Politica.
4. Clique em Criar e insira Anonymous.
5. Salve.
** Configurar a propagação de identidade do Pagelet Producer **
Obs.: Para essa configuração é necessário que o servidor WebCenter seja o mesmo para a aplicação e o Pagelet Producer.
1. Acesse:
<WEBCENTER_HOME>/Oracle_WC1/webcenter/scripts
2. Abra o arquivo configureTrustServiceIdentityAsserter.properties e edite com os seguintes parâmetros:
admin.user | weblogic |
admin.password | welcome1 |
admin.url | t3://<WEBCENTER_HOST>:<WEBCENTER_PORT> |
trust.alias | webcenter |
trust.issuer | www.oracle.com |
keystore.exported.cert | <WEBCENTER_DOMAIN>/config/fmwconfig/webcenter.cer |
3. Salve as alterações.
4. Acesse:
<WEBCENTER_HOME>/Oracle_WC1/common/bin
5. Execute:
No Linux: ./wlst.sh ../../webcenter/scripts/configureTrustServiceIdentityAsserter.py ../../webcenter/scripts/configureTrustServiceIdentityAsserter.properties
No Windows: wlst.cmd ../../webcenter/scripts/configureTrustServiceIdentityAsserter.py ../../webcenter/scripts/configureTrustServiceIdentityAsserter.properties
6. Reinicie o servidor.
Executando a aplicação WebCenter Portal
1. Na aplicação WebCenter Portal Framework Application, crie uma JSF Page.
2. Expanda a arvore de conexões de Pagelet Producer e arraste o Portlet até a página.
3. Selecione Sim na opção de Iframe, e informe a altura.
4. Salve a página e execute a aplicação.
Até a próxima!O Oracle WebCenter Portal Pagelet Producer (anteriormente chamado de Oracle WebCenter Ensemble) disponibiliza uma coleção de ferramentas uteis que facilitam o desenvolvimento de pagelets dinâmicos. Usando o Pagelet Producer, é possível expor portlets WSRP e Oracle JPDK como pagelets para uso em qualquer página ou aplicação web.
O Pagelet Producer Console é uma ferramenta de administração browser-based para criar e gerenciar os vários objetos em seu Pagelet Producer. Através do console é possível registrar aplicações web como recursos, criar pagelets, gerenciar proxy, transformações, e muito mais.
O Pagelet Producer Console é acessado por:
http://<host>:<port>/pagelets/admin
Pré-requisito
Projeto WLP com Portlet Remoto. Para criação, utilize o tutorial da Oracle: http://docs.oracle.com/cd/E35968_01/wlp.1035/e14235/chap_build_simple_remote.htm
Configurando o compatibilidade entre WebLogic Portal e WebCenter
Obs.: A compatibilidade com o WebCenter, só foi introduzida na versão 10.3 do WLP, por isso as configurações abaixo só funcionarão em aplicações que rodem em servidores com essa versão do WLP.
Devido a incompatibilidade entre a forma que o WLP e o WebCenter implementam certas operações WSRP (clonePortlet, destroyPortlets, importPortlets e exportPortlets), erros de autenticação de usuário podem ocorrer. Para prevenir erros de autenticação de usuário quando consumindo portlets do WLP em uma aplicação, faça o seguinte:
1. No servidor produtor WLP, crie um usuário para funcionar como um substituto para as operações WSRP listadas anteriormente. Esse usuário deve ser do grupo “Portal System Administrators”. Na imagem abaixo criei o usuário wc-wlp-user.
2. Acesse a view “Merged Projects” e copie o arquivo WEB-INF/wsrp-producer-config.xml para o projeto (clique com o botão direito sobre ele e selecione a opção “Copy to project”).
3. Abra o arquivo adicionado e inclua o elemento de segurança:
<security anonymousCloneDestroyUser="wc-wlp-user"/>
4. Salve as alterações e republique o projeto.
Com essas configurações, o servidor produtor WLP, automaticamente autenticará o usuário especificado, quando chamadas às quatro operações WSRP não-autenticadas forem recebidas. Essa autenticação automática só ocorre para as operações: clonePortlet, destroyPortlets, importPortlets e exportPortlets.
Configurando o WebCenter (Consumidor)
Obs. 1: É possível utilizar o domínio default do JDeveloper (IntegratedWebLogicServer) ou o domínio especifico do WebCenter Portal.
** Gerar chave **
1. Pelo terminal, acesse:
<WEBCENTER_HOME>/wlserver_10.3/server/bin
2. Para setar as variáveis de ambiente, execute:
No Linux: ./setWLSEnv.sh
No Windows: setWLSEnv.cmd
3. Para gerar uma nova chave, execute:
keytool -genkeypair -alias webcenter -keypass welcome1 -keyalg rsa -keysize 1024 -keystore webcenter.jks -storepass welcome1 -dname "CN=BR, OU=WEBCENTER"
** Exportar o certificado de chave pública **
1. Pelo terminal, acesse:
<WEBCENTER_HOME>/wlserver_10.3/server/bin
2. Para setar as variáveis de ambiente, execute:
No Linux: ./setWLSEnv.sh
No Windows: setWLSEnv.cmd
3. Para exportar o certificado para um arquivo, execute:
keytool -exportcert -alias webcenter -keypass welcome1 -keystore webcenter.jks -storepass welcome1 -file webcenter.cer
Configurando o WebLogic Portal (Produtor)
** Importar o certificado de chave pública dentro do repositório de chaves confiáveis do domínio produtor **
1. Copie o certificado para:
<WLP_HOME>/user_projects/domains/<WLP_DOMAIN>
2. Pelo terminal, acesse:
<WLP_HOME>/wlserver_10.3/server/bin
3. Para setar as variáveis de ambiente, execute:
No windows: setWLSEnv.cmd
No Linux: ./setWLSEnv.sh
4. Acesse:
<WLP_HOME>/user_projects/domains/<WLP_DOMAIN>
5. Para importar o certificado para o repositório de chaves confiáveis do domínio, execute:
keytool -importcert -keystore DemoTrust.jks -storepass DemoTrustKeyStorePassPhrase -file wckey.cer -alias wckey -keypass wckeypass
6. Na pergunta “Trust this certificate? [no]:”, digite yes e pressione Enter para adicionar o certificado.
7. Se o servidor estiver executando, reinicie-o.
** Modificar os templates WSDL da aplicação **
1. Acesse a view “Merged Projects” e copie os arquivos wsrp-wsdl-template.wsdl e wsrp-wsdl-template-v2.wsdl para o projeto (clique com o botão direito sobre ele e selecione a opção “Copy to project”).
2. Abra os arquivos adicionados e substitua o elemento <wsp:Policy> existente por:
<wsp:Policy wsu:Id="ProducerDefaultPolicy"/>
<wsp:Policy wsu:Id="WebCenterPolicy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<sp:AsymmetricBinding>
<wsp:Policy>
<sp:InitiatorToken>
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssX509V3Token10/>
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:InitiatorToken>
<sp:RecipientToken>
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never">
<wsp:Policy>
<sp:WssX509V3Token10/>
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:RecipientToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic128/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Lax/>
</wsp:Policy>
</sp:Layout>
<sp:OnlySignEntireHeadersAndBody/>
</wsp:Policy>
</sp:AsymmetricBinding>
<sp:SignedSupportingTokens>
<wsp:Policy>
<sp:SamlToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssSamlV11Token10/>
</wsp:Policy>
</sp:SamlToken>
</wsp:Policy>
</sp:SignedSupportingTokens>
<sp:Wss10>
<wsp:Policy>
<sp:MustSupportRefKeyIdentifier/>
<sp:MustSupportRefIssuerSerial/>
</wsp:Policy>
</sp:Wss10>
</wsp:Policy>
3. Salve as alterações.
** Modificar a configuração de politicas para web services da aplicação **
1. Acesse a view “Merged Projects” e copie o arquivo WEB-INF/weblogic-webservices-policy.xml para o projeto (clique com o botão direito sobre ele e selecione a opção “Copy to project”).
2. Substitua todo o conteúdo do arquivo por:
<?xml version='1.0' encoding='UTF-8'?>
<webservice-policy-ref xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Use WebLogic Server Admin Console to add new policies -->
<ref-name>WebCenter Policies for the WSRP Producer</ref-name>
<port-policy>
<port-name>WSRP_v2_Markup_Service</port-name>
<ws-policy>
<uri>#WebCenterPolicy</uri>
<direction>inbound</direction>
</ws-policy>
</port-policy>
<port-policy>
<port-name>WSRPBaseService</port-name>
<ws-policy>
<uri>#WebCenterPolicy</uri>
<direction>inbound</direction>
</ws-policy>
</port-policy>
<port-policy>
<port-name>WLP_WSRP_Ext_Service</port-name>
<ws-policy>
<uri>#WebCenterPolicy</uri>
<direction>inbound</direction>
</ws-policy>
</port-policy>
</webservice-policy-ref>
3. Salve as alterações e republique o projeto.
** Adicionar um novo registro no SAML Identity Asserter **
1. Abra o console do WebLogic Server e conecte-se.
2. Selecione Security Realms > myrealm > Providers > Authentication > SAMLIdentityAsserter > Management > Asserting Parties.
3. Na tabela Asserting Parties clique em New.
4. No menu selecione WSS/Sender Vouches.
5. No campo descrição insira WebCenter SAML token, e clique em OK.
6. Na tabela selecione o registro criado para editar, informe os parâmetros e salve.
Enabled | true (Selecione o checkbox) |
Target URL | default |
Issuer URI | www.oracle.com |
Registrar o WebLogic Portal Produtor no Pagelet Producer
1. Acesse o Pagelet Producer.
2. No menu a esquerda, selecione a opção Produtores.
3. Clique em Registrar.
4. Informe os parâmetros e clique em OK.
Nome | <APP_CONTEXT> |
URL | http://<WEBCENTER_HOST>:<WEBCENTER_PORT>/<APP_CONTEXT>/producer/wsrp-1.0/markup?WSDL |
Perfil de Token | Token SAML 1.0 de WSS com Integridade de Mensagens |
Usuário Default | rpc.auth.username |
Configurar o consumo do Pagelet Producer na aplicação
1. No JDeveloper, em Connections, clique com o botão direito e selecione a opção Pagelet Producer.
2. Informe os parâmetros e clique em OK.
Nome | WebCenterPagelet |
URL | http://<WEBCENTER_HOST>:<WEBCENTER_PORT>/pagelets/ |
Configuração de autenticação do Pagelet Producer
Para execução da aplicação no dominio default do JDeveloper deve ser executada a configuração de login do Pagelet Producer. Para execução da aplicação no dominio WebCenter Portal, deve ser executada a configuração de Propagação de identidade do Pagelet Producer.
** Configurar o login do Pagelet Producer **
Obs.: O dominio default do JDeveloper não é um dominio WebCenter Portal completo, por isso a propagação de identidade não funciona nele.
1. Acesse o Pagelet Producer.
2. Selecione o recurso a ser utilizado e depois a opção Copiar Recurso. É necessário criar uma cópia, pois o original não aceita modificações.
3. Selecione o recurso copiado e selecione a opção Politica.
4. Clique em Criar e insira Anonymous.
5. Salve.
** Configurar a propagação de identidade do Pagelet Producer **
Obs.: Para essa configuração é necessário que o servidor WebCenter seja o mesmo para a aplicação e o Pagelet Producer.
1. Acesse:
<WEBCENTER_HOME>/Oracle_WC1/webcenter/scripts
2. Abra o arquivo configureTrustServiceIdentityAsserter.properties e edite com os seguintes parâmetros:
admin.user | weblogic |
admin.password | welcome1 |
admin.url | t3://<WEBCENTER_HOST>:<WEBCENTER_PORT> |
trust.alias | webcenter |
trust.issuer | www.oracle.com |
keystore.exported.cert | <WEBCENTER_DOMAIN>/config/fmwconfig/webcenter.cer |
3. Salve as alterações.
4. Acesse:
<WEBCENTER_HOME>/Oracle_WC1/common/bin
5. Execute:
No Linux: ./wlst.sh ../../webcenter/scripts/configureTrustServiceIdentityAsserter.py ../../webcenter/scripts/configureTrustServiceIdentityAsserter.properties
No Windows: wlst.cmd ../../webcenter/scripts/configureTrustServiceIdentityAsserter.py ../../webcenter/scripts/configureTrustServiceIdentityAsserter.properties
6. Reinicie o servidor.
Executando a aplicação WebCenter Portal
1. Na aplicação WebCenter Portal Framework Application, crie uma JSF Page.
2. Expanda a arvore de conexões de Pagelet Producer e arraste o Portlet até a página.
3. Selecione Sim na opção de Iframe, e informe a altura.
4. Salve a página e execute a aplicação.
Até a próxima!