Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin
Composition Setup
import.css=/download/attachments/327912/newLayout.css
Portuguese

Pagetitle
HttpCachesaveIDPXMLHttpCache
saveIDPXML

Função: saveIDPXML

Função que recebe um buffer xml e o nome de um arquivo onde será salvo este buffer, após fazer o parse do buffer, extrai o entityID do buffer e salva o buffer em um arquivo com o nome recebido
dentro do diretório de configuração do SAML
.

Após salvar o buffer xml, atualiza o arquivo de configuração do SAML, altera o entityID do IDP com o entityID extraido do buffer e , altera o nome do arquivo de configuração do IDP para o nome recebido e altera a URL do arquivo de configuração para http://withoutrealurl.saml ( URL inexistente ).

Sintaxe

saveIDPXML ( <xmlBuffer>, <filename>, [@errorMsg] ) --> flag 

 

 
NomeTipoDescriçãoObrigatórioReferência
cCacheControlxmlBufferCaracterIndica o novo conteúdo da etiqueta da header de retorno HTTP cache controlBuffer contendo o xml de configuração do Identity Provider ( IDP ).X 
 filename  CaracterNome do arquivo de configuração onde será salvo o buffer XML.X  
errorMsg CaracterEm caso de erro, esta variável será preenchida com a descrição do erro.   X

 

Retorno

cLastCache flag (caracterLógico)
  • Retorna a definição utilizada para a etiqueta cache control do cabeçalho HTTPverdadeiro (.T.) em caso de sucesso; caso contrário, retorna uma string em branco. Para mais detalhes da definição, consulte a tabela Definição Cache Control, na área Observações.
  • falso (.F.).
A URL do IDP é utilizada para recuperar o arquivo de configuração do IDP automaticamente, utilizando a função saveIDPXML fazemos exatamente o contrário, ou seja, o arquivo de configuração do IDP é criado a partir de um comando ADVPL.
Para o SP recuperar o arquivo de configuração do IDP automaticamente, acesse setIDPConf.

 

Bloco de código
languagecpp
firstline1
linenumberstrue
local error
local ret := saveIDPXML('<?xml version="1.0" encoding="UTF-8"?> <md:EntityDescriptor ';
  + 'xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="TotvsLab" xmlns:ds="

Tabela - Definição Cache Control

ConteúdoAplicação
no-storeNenhuma informação deve ser guardada em cache pelo servidor e/ou proxy(ies). 
Somente será possível definir um novo contéudo para o Cache Control, do header HTTP, caso a função HTTPCache() seja executada antes de qualquer envio, pela função HTTPSend(), parcial de HTML - Hypertext Markup Language ao browser.

Recomendamos a utilização desta função para quando estiver trabalhando com diversos frames. Desta forma, não ocorrerá o armazenamento de formulários e/ou páginas no servidor ou proxy.

 

Exemplo de campos

 cache-response-directive =
           "public"                               ; Section
14.9.1
         | "private" [ "=" <"> 1#field-name <"> ] ; Section
14.9.1
         | "no-cache" [ "=" <"> 1#field-name <"> ]; Section
14.9.1
         | "no-store"                             ; Section
14.9.2
         | "no-transform"                         ; Section
14.9.5
         | "must-revalidate"                      ; Section
14.9.4
         | "proxy-revalidate"                     ; Section
14.9.4
         | "max-age" "=" delta-seconds            ; Section
14.9.3
         | "s-maxage" "=" delta-seconds           ; Section
14.9.3
         | cache-extension                        ; Section
14.9.6

 

Para mais informações, consulte a referência para Cache-Control no site w3: 
http://www.w3.org/
Protocols
2000/
rfc2616/rfc2616-sec14.html.
Static Function CacheOption()HttpCache("no-store, no-cache, must-revalidate,post-check=0, pre-check=0, max-age=0")Return____________________________________// Função chamada pelo browser ...WEB function anyCall()               Local cHtml := ""                      // Função deve ser chamada sempre antes do retorno	CacheOption()	cHtml := "Retornando ... Sem Cache no Servidor / Proxy"Return cHtml
09/xmldsig#"> ';
  + '<md:IDPSSODescriptor ';
  + 'protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> ';
  + '<md:KeyDescriptor use="signing"> ';
  + '<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> ';
  + '<ds:X509Data> ';
  + '<ds:X509Certificate>MIICAjCCAWsCBgE6nmD6GDANBgkqhkiG9w0BAQsFADBHMSUwIwYDVQQLExxUb3R2c0xhYiBQcmltYXJ5IENlcnRpZmljYXRlMREwDwYDVQQKEwhUb3R2c0xhYjELMAkGA1UEBhMCVVMwHhcNMTIxMDI2MTg0MTI2WhcNMTIxMDI3MDgzNTUxWjBHMSUwIwYDVQQLExxUb3R2c0xhYiBQcmltYXJ5IENlcnRpZmljYXRlMREwDwYDVQQKEwhUb3R2c0xhYjELMAkGA1UEBhMCVVMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJUpGeXViQZI4QoXXDt5GHdgkuQbrdTAgcdo7pgY7e+WTU8Xdl+MvxTAONtTCE13xy5Z6ydGUFxoSzW3/mlX4ABAr6Lgd5w1vjuhSqPfjDrV8ahgUPHJOmQ6k+jjbS9OVpfHt4HYq8Q8wj2u/HkgIsZ/SgL4iBtsxX6rPP64v5NpAgMBAAEwDQYJKoZIhvcNAQELBQADgYEAjdxe/+HuqYnYUAUt5TuOrGkiQD91npToPcFHZtQiCyiwLrkrKXkZNiM0NXGAX2AIdSMkmqFI/jxeTPOT7g4vWBMYBzJnxhTKS8sx+62Ml2gQBP1LXnTWRUNmwBQHQkBqfw8p7qUpJ9qmhEhK4jJpOrJQU3kSJxwpihneeDUfcbw=</ds:X509Certificate> ';
  + '</ds:X509Data> </ds:KeyInfo> </md:KeyDescriptor> ';
  + '<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ';
  + 'Location="http://50.0.250.71:8080/saml/SSO/POST"/> ';
  + '</md:IDPSSODescriptor> </md:EntityDescriptor>', "cloudpass.xml", @error)
  
  if ret == .F.
	return alert("saveIDPXML: " + error)
  endif

 

Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server