coldfusion.policy
Publicado; 20/11/2003 Arquivado em: ColdFusion 1 comentárioVendo o post abaixo do figuraça Alex Hübner, me lembrou que dia desses, logo após selecionar o “Enable ColdFusion Security” para ativar o Sandbox de um servidor ColdFusion, fui, como é de praxe – e necessário – reiniciar o serviço do ColdFusion.
E não é que o servidor não iniciava? Não dava nenhuma mensagem de erro? Simplesmente não iniciava! $%^&*!
Lá fui eu:
C:>cd d:cfusionmxruntimebin
d:CFusionMXruntimebin>jrun
java.security.policy: error parsing file:/D:/CFusionMX/lib/coldfusion.policy:
line 9: expected [;], found [deny]
Exception in thread “main” java.lang.ExceptionInInitializerError
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission jrun.home read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:269)
at java.security.AccessController.checkPermission(AccessController.java:401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1276)
at java.lang.System.getProperty(System.java:573)
at jrunx.kernel.JRun.
D:CFusionMXruntimebin>
E lá fui agora no coldfusion.policy, que se encontrava da seguinte maneira:
// PERMISSIONS GRANTED TO EVERYONE
grant {
permission java.security.AllPermission;
};
deny {
permission java.security.AllPermission;
};
Olha, eu não sei porque diabos ele estava assim nessa indecisão de permito? ou não permito? ser ou não ser? ohhh…, mas tirando o deny {permission java.security.AllPermission;}, claro, ele funcionou numa boa.
Bug com CFFTP e sandbox security?
Publicado; 20/11/2003 Arquivado em: ColdFusion 5 ComentáriosNão sou de ficar caçando agulha em palheiro mas hoje acredito ter encontrado um segundo bug no CFMX 6.1 (o primeiro pode ser visto aqui). Desta vez foi tentando encontrar a solução para um problema levantado por um cliente da MM Brasil (provavelmente o mesmo que postou uma mensagem sobre isso na CF-Brasil em setembro deste ano). Parece que a tag CFFTP (com seus atributos padrões) não funciona corretamente e numa pasta “sandboxizada” (seria melhor usar “contextualizada”?).
Sou um completo ignorante em RFCs, protocolos e afins, por isso me perdoem os puristas sobre o que vou falar sobre o protocolo FTP… Quando nos conectados a um servidor FTP usando a tag CFFTP, o ColdFusionMX (devemos encarar o ColdFusionMX/CFFTP como “clientes” FTP) usa – por padrão (?) – o modo PORT para se conectar ao host FTP solicitado. Desta maneira o tráfego de informações ficará “travado”, no lado do servidor FTP, somente nas portas 21 (cmd) e 20 (data). Qualquer um que já tenha configurado um firewall ou mesmo um cliente FTP já se deparou com esse comportamento (que na verdade é uma regra).
O cerne da questão é que, apesar de ter todas as permissões corretas e configuradas na seção “Server/Ports” de uma sandbox security, o CFMX não consegue completar a conexão, retornando um erro de java.net.SocketPermission denied, tal como reportado.
Mesmo quando não existe qualquer restrição de host/ips e portas no “Server/Ports” (default quando você configura uma nova sandbox) o CFMX é incapaz de se conectar via FTP em modo default (port). “Googlei” para todo o lado procurando alguém que tenha encontrado o mesmo problema mas só encontrei um relato semelhante, até agora sem resposta.
Estaria eu viajando de bonde ou trata-se realmente de um bug?
O workaround que encontrei para o problema é o seguinte:
1) No seu script CFML, use o atributo passive=”Yes” da tag CFFTP;
2) Prefira não configurar restrições dentro de “Server/Ports”. Caso isso seja imprescindível e inevitável, esta deverá conter as seguintes entradas: (1) “localhost:(todas as portas – basta deixar o campo “port” em branco)”, (2) “ftp.uol.com.br:21” (ou qq. outro host ftp), (3) “ftp.uol.com.br:1024-65535” (range dinâmico para retorno de conexões FTP em modo passive).
Veja no link continue lendo abaixo a mensagem que enviei à Macromedia (bug form) sobre o assunto.
Alguém aí consegue reproduzir o dito cujo?
UPDATE: A Macromedia Inc confirma o bug e este foi adicionado ao bug base sob o número 54053.
ColdFusion Blackstone
Publicado; 19/11/2003 Arquivado em: ColdFusion Comentários desativados em ColdFusion BlackstoneBen Forta solta algumas (poucas) palavras sobre a próxima versão do ColdFusion.
Verificar endereços de e-mail
Publicado; 17/11/2003 Arquivado em: ColdFusion 17 ComentáriosRolou um assunto na lista CF-Brasil, que também é assunto nas mais diversas listas de desenvolvimento de aplicações web: como saber se um e-mail é valido ou não é.
É irritante enviar milhares de e-mails e centenas deles voltarem como inexistentes. Por mais que acrescentemos algumas linhas de código, seja no cliente ou no servidor, para verificar, não a existência de fato do e-mail, mas apenas se o formato está correto, ainda teremos e-mails inválidos aos montes.
E é claro, há como fazer isso.
Mais um hotfix para CFMX
Publicado; 13/11/2003 Arquivado em: ColdFusion 2 ComentáriosMais um hotfix para o CFMX 6.1. Quem disponibiliza ou consome webservices de outras plataformas vai gostar das adições e possibilidades antes não existentes, que incluem algumas UDFs interessantes e úteis:
Web Service Headers with ColdFusion MX
Já está virando rotina! Que bom não?
6.1 Issues
Publicado; 11/11/2003 Arquivado em: ColdFusion Comentários desativados em 6.1 IssuesAtualizado hoje:
ColdFusion MX 6.1 confirmed issues
E é sempre bom lembrar:
ColdFusion hot fixes (all versions)
Não perca a elegância
Publicado; 11/11/2003 Arquivado em: ColdFusion 3 ComentáriosDevo confessar que durante muito tempo literalmente re-inventava a roda em se tratando de ColdFusion. Como todos nós, iniciantes ou experts, fazia barbarides (acho que ainda faço algumas) com o CFML procurando atingir um objetivo muito simples. Hoje vou dar um exemplo que pode acontecer com muita gente.
Você já fez uma query simples que retornava duas variáveis tais como “campoID” e “descricao”? Obviamente que sim. E você já precisou colocar os IDs retornados (“campoID”) numa lista? Muito provavelmente também. As necessidades de se ter uma listagem dos IDs retornados pela query são inúmeras e fundamentais em algumas ocasiões. Pois eis aqui o exemplo mais estúpido de como fazer isso e logo em seguida o jeito mais correto, elegante e rápido (sua CPU agradece).
UPDATE: obrigado ao André Garcia pelo lembrete da função ValueList()!
Maneira estúpida:
E a mais elegante:
Ou ainda:
Veja este teste comparando a performance das três abordagens
BlueDragon 6.1 preview
Publicado; 10/11/2003 Arquivado em: ColdFusion Comentários desativados em BlueDragon 6.1 previewEstá disponível para download uma versão preview do servidor BlueDragon JX, agora na versão 6.1 (sugestivo não?). O BlueDragon (veja aqui e aqui) é um servidor Java que também interpreta CFML (ColdFusion Markup Language), além de JSP, tal como o CFServer Enterprise da Macromedia. A diferença? Menos recursos e um preço bem competitivo (U$ 549,00 – ou quase 10% do valor de uma licença de CFMX Enterprise) e também uma versão free, sem suporte à JSP, mas que pode ser usado em produção.
[via ClickRafa]
De volta para o futuro! CreateUUID()
Publicado; 07/11/2003 Arquivado em: ColdFusion 1 comentárioAgora pouco me deparei com um post no Blog do Ray sobre um novo TechNote de suporte do ColdFusion no MM.com. Pois bem, para mim este é um dos bugs mais exóticos do CFMX (o bug é do JVM na verdade). O problema aparece quando se usa de forma maciça a função CreateUUID(), uma função bem conhecida e utilizada em quase todas as linguagens de programação que, em poucas linhas, gera uma string maluca, de acordo com regras ainda mais malucas e também (importante) dependendo do horário em que esta foi gerada (supondo-se que seja impossível “viajar no tempo”…). Ao usar CreateUUID() o relógio do Windows vai andar mais rápido (um milisegundo a cada “rodada” do CreateUUID() se não me engano), literalmente, podendo adiantar significamente o horário do sistema.
Confiram o TechNote e o workaround proposto:
CreateUUID Increases the Windows System Clock Speed
Não é possível! Mais um hotfix?
Publicado; 01/11/2003 Arquivado em: ColdFusion 3 ComentáriosBastou comentar sobre o possível “último hotfix do mês” para que a Macromedia disponibiliza-se outro nos 47 do segundo tempo. :o)
Trata-se de um hotfix que corrige uma falha de spooling nas definições de datasources do CFMX 6.1. É um hotfix importante pois corrige um problema que pode travar o servidor em alguns casos, especialmente sob carga.
Hot fix for data source connection pooling