IBM Edge Server: Criando Paginas de Erro Customizadas

Podemos customizar o IBM Edge Server para gerar arquivos com o estilo da empresa. Para isso realize os procedimentos abaixo:

Procedimento:

Criando o modelo
1) Crie um diretório c:\errorpages e adicione os css e imagens.

2) Crie um arquivo de modelo html de modelo para validar.

3) Após fechado o modelo, altera a função printFile, no script aplicativo java, para gerar os arquivos htmls.

Criando os arquivos com um java
Gere os arquivos utilizando o seguinte aplicativo java

import java.io.FileOutputStream; import java.io.PrintStream; public class MontaEdgeCustomMessages { public static void main(String[] args) { MontaEdgeCustomMessages run = new MontaEdgeCustomMessages; System.out.println("MontaEdgeCustomMessages - Start"); run.runMain; System.out.println("MontaEdgeCustomMessages - End"); } 	private void runMain { //String sI = ""; try { String dirName = "c://errorpages//"; this.printFile(dirName +"badrange.htmls","Error 416 - Invalid request - Content range is incorrect."); this.printFile(dirName +"badredirect.htmls","Error 403 - Forbidden - invalid redirection in configuration file."); this.printFile(dirName +"badrequest.htmls","Error 400 - Invalid request - completely unable to parse it."); this.printFile(dirName +"badscript.htmls","Error 400 - Bad script request -- no script name."); this.printFile(dirName +"baduser.htmls","Error 403 - Forbidden - bad user directory."); this.printFile(dirName +"blocked.htmls","Error 403 - Blocked by filtering rule."); this.printFile(dirName +"byrule.htmls","Error 403 - Access forbidden by rule."); this.printFile(dirName +"cacheexp.htmls","Error 404 - Document was found in the cache, but it was expired."); this.printFile(dirName +"cachenoconn.htmls","Error 504 - Document was not found in the cache."); this.printFile(dirName +"cachenotopened.htmls","Error 500 - Proxy cache file could not be accessed."); this.printFile(dirName +"cacheonly.htmls","Error 504 - The requested document is not cached."); this.printFile(dirName +"connectfail.htmls","Error 400 - Proxy Error: Unable to connect to remote host or host not responding - URL "); this.printFile(dirName +"deletefailed.htmls","Error 500 - Unable to delete file."); this.printFile(dirName +"dirbrowse.htmls","Error 403 - Directory browsing failed - access forbidden."); this.printFile(dirName +"dirnobrowse.htmls","Error 403 - Directory browsing failed - unable to open directory (opendir)."); this.printFile(dirName +"dotdot.htmls","Error 403 - Forbidden - URL containing .. forbidden."); this.printFile(dirName +"expectfailed.htmls","Error 417 - Expectation Failed."); this.printFile(dirName +"ftpanonloginrej.htmls","Error 504 - Proxy Error: Cannot login to the FTP Server anonymously."); this.printFile(dirName +"ftpauth.htmls","Error 400 - Proxy Error: Could not login to FTP Server."); this.printFile(dirName +"ftpbad220.htmls","Error 504 - Proxy Error: FTP Server did not send 220 connection message."); this.printFile(dirName +"ftphpanonloginrej.htmls","Error 400 - Proxy Error: Cannot login to the FTP Server anonymously."); this.printFile(dirName +"ftphpbad220.htmls","Error 504 - Proxy Error: FTP Server did not send 220 connection message."); this.printFile(dirName +"ftphploginrej.htmls","Error 400 - The requested user ID cannot login to the FTP Server."); this.printFile(dirName +"ftphpnoconnect.htmls","Error 400 - Proxy Error: Unable to connect to remote FTP Server at or server not responding."); this.printFile(dirName +"ftphpnodata.htmls","Error 400 - Proxy Error: unable to open data connection for the FTP Server at ."); this.printFile(dirName +"ftphpnoresponse.htmls","Error 400 - Proxy Error: No response from FTP Server at ."); this.printFile(dirName +"ftphpnosocket.htmls","Error 400 - Proxy Error: Unable to open socket for FTP connection."); this.printFile(dirName +"ftphpunreshost.htmls","Error 400 - Proxy Error: Unable to resolve host name -"); this.printFile(dirName +"ftploginrej.htmls","Error 504 - The requested user ID cannot login to the FTP Server."); this.printFile(dirName +"ftploginreq.htmls","Error 401 - Proxy Error: userid and/or password required for the FTP Server at"); this.printFile(dirName +"ftpnoconnect.htmls","Error 504 - Proxy Error: Unable to connect to remote FTP Server at"); this.printFile(dirName +"ftpnodata.htmls","Error 504 - Proxy Error: unable to open data connection for the FTP Server"); this.printFile(dirName +"ftpnoresponse.htmls","Error 504 - Proxy Error: No response from FTP Server at"); this.printFile(dirName +"ftpnosocket.htmls","Error 504 - Proxy Error: Unable to open socket for FTP connection."); this.printFile(dirName +"ftpunrechost.htmls","Error 400 - Proxy Error: Host name not recognized or host not found -"); this.printFile(dirName +"ftpunreshost.htmls","Error 504 - Proxy Error: Unable to resolve host name -"); this.printFile(dirName +"hpforbidden.htmls","Error 403 - Forbidden - Not Allowed."); this.printFile(dirName +"httpnodata.htmls","Error 400 - Proxy Error: Remote host did not send any data - URL"); this.printFile(dirName +"httpnoforward.htmls","Error 400 - Proxy Error: Unable to forward request"); this.printFile(dirName +"httpnosend.htmls","Error 400 - Proxy Error: Unable to send request"); this.printFile(dirName +"httpunreshost.htmls","Error 400 - Proxy Error: Unable to resolve host name - URL"); this.printFile(dirName +"ipmask.htmls","Error 403 - Forbidden - server refuses to serve to your IP address."); this.printFile(dirName +"ipmaskproxy.htmls","Error 403 - Proxy server will not serve to your IP Address (at least with this HTTP"); 			this.printFile(dirName +"methoddisabled.htmls","Error 405 - Method is disabled on this server."); 			this.printFile(dirName +"multifail.htmls","Error 404 - Not found - file doesn't exist or is read protected [even tried multi]."); 			this.printFile(dirName +"noaccess.htmls","Error 403 - Cannot access the requested file."); 			this.printFile(dirName +"noacl.htmls","Error 403 - Forbidden - access to file is never allowed [no ACL file]."); 			this.printFile(dirName +"nocachenoconn.htmls","Error 400 - Internal proxy cache standalone mode error;"); 			this.printFile(dirName +"noentry.htmls","Error 403 - Forbidden - access to file is never allowed [no ACL entry]."); 			this.printFile(dirName +"noformat.htmls","Error 406 - No acceptable representation."); 			this.printFile(dirName +"nohostheader.htmls","Error 400 - Invalid request -- HOST header was not sent."); this.printFile(dirName +"noopen.htmls","Error 403 - Cannot open file."); this.printFile(dirName +"nopartner.htmls","Error 400 - Proxy Error: Host name not recognized or host not found - URL"); this.printFile(dirName +"norep.htmls","Error 403 - Could not find suitable representation for transmission."); this.printFile(dirName +"notallowed.htmls","Error 403 - Forbidden - PUT/DELETE must be explicitly allowed in server's protection"); this.printFile(dirName +"notauthorized.htmls","Error 401 - Not Authorized - Authentication failed."); this.printFile(dirName +"notfound.htmls","Error 404 - Not found"); this.printFile(dirName +"notmember.htmls","Error 401 - Not authorized to access the document."); this.printFile(dirName +"olproxnocontact.htmls","Error 400 - Outer-level proxy could not be contacted."); this.printFile(dirName +"openfailed.htmls","Error 403 - Cannot browse the selected file."); this.printFile(dirName +"originbadresp.htmls","Error 500 - Origin Server returned invalid response."); this.printFile(dirName +"outputtimeout.htmls","Error 504 - Proxy Time-out "); this.printFile(dirName +"preconfail.htmls","Error 412 - Precondition failed: Could not match entity tags"); this.printFile(dirName +"proxybadurl.htmls","Error 400 - Proxy Error: Invalid URL."); this.printFile(dirName +"proxyfail.htmls","Error 400 - Proxy load failed."); this.printFile(dirName +"proxynotauth.htmls","Error 407 - Not authorized. Proxy-Authentication failed (or your browser does not"); 			this.printFile(dirName +"proxynotmember.htmls","Error 407 - Not authorized for proxy access to the document."); 			this.printFile(dirName +"putfailed.htmls","Error 500 - Unable to put file."); 			this.printFile(dirName +"rchunkerror.htmls","Error 502 - An incorrectly formatted chunked message was received."); 			this.printFile(dirName +"rchunkmemory.htmls","Error 500 - Proxy Error: Unable to continue receiving chunked message."); 			this.printFile(dirName +"scriptinterr.htmls","Error 500 - Internal error: execve failed."); 			this.printFile(dirName +"scriptio.htmls","Error 500 - Internal error: can't read script output pipe."); 			this.printFile(dirName +"scriptnocomm.htmls","Error 500 - Could not communicate with CGI program."); 			this.printFile(dirName +"scriptnotfound.htmls","Error 500 - Bad preparse script request -- script is not executable"); this.printFile(dirName +"scriptnovari.htmls","Error 500 - Bad script request -- no variation is executable."); this.printFile(dirName +"scriptstart.htmls","Error 500 - Starting the CGI program failed."); this.printFile(dirName +"servermaperror.htmls","Error 500 - Server mapping error. The server is misconfigured."); this.printFile(dirName +"setuperror.htmls","Error 403 - Forbidden - server protection setup error [probably protection setup file"); this.printFile(dirName +"throttled.htmls","Error 503 - This server cannot accept any more requests right now."); this.printFile(dirName +"unknownmethod.htmls","Error 501 - The request is not valid or not recognized."); } 		catch (Exception e){ System.err.println(e); } 	} 	private void printFile(String fileName, String ErrorMessage) throws Exception{ FileOutputStream saida; PrintStream fileSaida; saida = new FileOutputStream(fileName); fileSaida = new PrintStream(saida); fileSaida.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

Colocar o seu código aqui, usuando a função fileSaida.println

} }

Colocando os arquivos em produção
Vá para o diretório de configuração do edge


 * 1) cd /opt/ibm/edge/cp/server_root/pub/en_US

Faça um backup do arquivos originais


 * 1) mv errorpages errorpages_orig

Crie o novo diretório


 * 1) mkdir erropages
 * 2) cd errorpages

Coloque os arquivos criados no novo diretório

Ajustando a configuração no ibmproxy.conf
Vá para o diretório de configuração do edge


 * 1) cd /opt/ibm/edge/cp/etc/en_US

Edite o arquivo ibmproxy.conf

ErrorPage badrange             /errorpages/badrange.htmls ErrorPage badredirect          /errorpages/badredirect.htmls ErrorPage badrequest           /errorpages/badrequest.htmls ErrorPage badscript            /errorpages/badscript.htmls ErrorPage baduser              /errorpages/baduser.htmls ErrorPage blocked              /errorpages/blocked.htmls ErrorPage byrule               /errorpages/byrule.htmls ErrorPage cacheexp             /errorpages/cacheexp.htmls ErrorPage cachenoconn          /errorpages/cachenoconn.htmls ErrorPage cachenotopened       /errorpages/cachenotopened.htmls ErrorPage cacheonly            /errorpages/cacheonly.htmls ErrorPage connectfail          /errorpages/connectfail.htmls ErrorPage deletefailed         /errorpages/deletefailed.htmls ErrorPage dirbrowse            /errorpages/dirbrowse.htmls ErrorPage dirnobrowse          /errorpages/dirnobrowse.htmls ErrorPage dotdot               /errorpages/dotdot.htmls ErrorPage expectfailed         /errorpages/expectfailed.htmls ErrorPage ftpanonloginrej      /errorpages/ftpanonloginrej.htmls ErrorPage ftpauth              /errorpages/ftpauth.htmls ErrorPage ftpbad220            /errorpages/ftpbad220.htmls ErrorPage ftphpanonloginrej    /errorpages/ftphpanonloginrej.htmls ErrorPage ftphpbad220          /errorpages/ftphpbad220.htmls ErrorPage ftphploginrej        /errorpages/ftphploginrej.htmls ErrorPage ftphpnoconnect       /errorpages/ftphpnoconnect.htmls ErrorPage ftphpnoresponse      /errorpages/ftphpnoresponse.htmls ErrorPage ftphpnosocket        /errorpages/ftphpnosocket.htmls ErrorPage ftphpunreshost       /errorpages/ftphpunreshost.htmls ErrorPage ftploginrej          /errorpages/ftploginrej.htmls ErrorPage ftploginreq          /errorpages/ftploginreq.htmls ErrorPage ftpnoconnect         /errorpages/ftpnoconnect.htmls ErrorPage ftpnodata            /errorpages/ftpnodata.htmls ErrorPage ftpnoresponse        /errorpages/ftpnoresponse.htmls ErrorPage ftpnosocket          /errorpages/ftpnosocket.htmls ErrorPage ftpunrechost         /errorpages/ftpunrechost.htmls ErrorPage ftpunreshost         /errorpages/ftpunreshost.htmls ErrorPage hpforbidden          /errorpages/hpforbidden.htmls ErrorPage httpnodata           /errorpages/httpnodata.htmls ErrorPage httpnoforward        /errorpages/httpnoforward.htmls ErrorPage httpnosend           /errorpages/httpnosend.htmls ErrorPage httpunreshost        /errorpages/httpunreshost.htmls ErrorPage ipmask               /errorpages/ipmask.htmls ErrorPage ipmaskproxy          /errorpages/ipmaskproxy.htmls ErrorPage methoddisabled       /errorpages/methoddisabled.htmls ErrorPage multifail            /errorpages/multifail.htmls ErrorPage noaccess             /errorpages/noaccess.htmls ErrorPage noacl                /errorpages/noacl.htmls ErrorPage nocachenoconn        /errorpages/nocachenoconn.htmls ErrorPage noentry              /errorpages/noentry.htmls ErrorPage noformat             /errorpages/noformat.htmls ErrorPage nohostheader         /errorpages/nohostheader.htmls ErrorPage noopen               /errorpages/noopen.htmls ErrorPage nopartner            /errorpages/nopartner.htmls ErrorPage norep                /errorpages/norep.htmls ErrorPage notallowed           /errorpages/notallowed.htmls ErrorPage notauthorized        /errorpages/notauthorized.htmls ErrorPage notfound             /errorpages/notfound.htmls ErrorPage notmember            /errorpages/notmember.htmls ErrorPage olproxnocontact      /errorpages/olproxnocontact.htmls ErrorPage openfailed           /errorpages/openfailed.htmls ErrorPage originbadresp        /errorpages/originbadresp.htmls ErrorPage preconfail           /errorpages/preconfail.htmls ErrorPage proxybadurl          /errorpages/proxybadurl.htmls ErrorPage proxyfail            /errorpages/proxyfail.htmls ErrorPage proxynotauth         /errorpages/proxynotauth.htmls ErrorPage proxynotmember       /errorpages/proxynotmember.htmls ErrorPage putfailed            /errorpages/putfailed.htmls ErrorPage rchunkerror          /errorpages/rchunkerror.htmls ErrorPage rchunkmemory         /errorpages/rchunkmemory.htmls ErrorPage scriptinterr         /errorpages/scriptinterr.htmls ErrorPage scriptio             /errorpages/scriptio.htmls ErrorPage scriptnocomm         /errorpages/scriptnocomm.htmls ErrorPage scriptnotfound       /errorpages/scriptnotfound.htmls ErrorPage scriptnovari         /errorpages/scriptnovari.htmls ErrorPage scriptstart          /errorpages/scriptstart.htmls ErrorPage servermaperror       /errorpages/servermaperror.htmls ErrorPage setuperror           /errorpages/setuperror.htmls ErrorPage throttled            /errorpages/throttled.htmls ErrorPage unknownmethod        /errorpages/unknownmethod.htmls ErrorPage outputtimeout        /errorpages/outputtimeout.htmls

Salve e feche o arquivo

Reinicie o serviço


 * 1) service ibmproxy stop
 * 2) service ibmproxy start