Links Recomendados

Casa Nova Decorações - Copacabana RJ - 2256-5120


Tela Mosquiteira, Cortinas, Persianas, Toldos Nacionais e Importados.
www.casanova-decoracoes.com

segunda-feira, 21 de dezembro de 2009

Tutorial Grails + Plugin acegi (Segurança)

Não iremos utilizar nenhuma IDE para seguir o tutorial então basta que você esteja com o prompt de comando aberto e com o bloco de notas. Em alguns momentos iremos utilizar o console do Groovy.

Para os exemplos iremos considerar que você esteja criando a aplicação na raiz da árvore de diretórios da unidade C.

Para iniciar é preciso fazer a instalação do Framework. Caso não tenha o Grails instalado em sua máquina, acesse http://www.grails.org/Installation e veja como fazer.

Criando a aplicação

Depois de instalado vamos criar uma aplicação chamada myapp. No prompt de comando digite
C:\>grails create-app myapp para criar a aplicação. Depois navegue pelo prompt até a pasta raiz da aplicação com o comando C:\>cd myapp.

Estrutura da Aplicação

Breve explicação sobre algumas pastas importantes criadas pelo Grails para a aplicação:

Conf: Local onde ficam armazenados os arquivos de configuração da sua aplicação como datasources etc.
Controllers: Local onde ficam as classes controladoras da sua aplicação, ou seja, as classes que recebem e enviam as requisições do/para o browser.
Domain: Local onde ficam as classes do domínio da aplicação.
I18n: (Internacionalização) Local onde fimas recursos como message boundles etc.
Services: Armazena as classes de serviço como beans do spring etc.
Views: Local onde ficam as páginas da aplicação (.gsp)

Feito isso sua aplicação já estará pronta para ser utilizada pois o Grails já vem com um servidor embutido chamado jetty, então basta startar a aplicação com o comando C:\myapp>grails run-app.
Quando a aplicação for startada, no final do prompt irá aparecer a URL da sua aplicação. Deve ser algo parecido com http://localhost:8080/myapp.

Acesse a url indicada e se tudo estiver certo você verá a página inicial da sua aplicação Grails como mostrada abaixo.

Página Inicial da Aplicação


Criando Classes de Domínio

Vamos agora criar uma classe de domínio chamada Book. No prompt de comando na pasta raiz da aplicação digite o comando C:\myapp>grails create-domain-class Book.
Abra a classe Book.groovy com o bloco de notas ou outro editor de sua preferência. Ela está localizada na pasta domain.
Vamos adicionar dois atributos a classe são eles titulo (title) e autor (author).

Classe Book



Praticando Alguns Comandos no Groovy Console

Digite no prompt o comando C:\myapp\grails console. Este comando irá abrir o console do Grails onde poderemos executar alguns scripts. Na verdade você pode criar classes etc.
Vamos instanciar a classe Book e persistir no Banco.
Digite o código abaixo no console e depois execute o script com o comando CTRL+R. A saída deve ser semelhante a figura abaixo.

book = new Book(title:"Lua Nova", author:"Stephenie Meyer")
book.save()




Digite CTRL+R mais algumas vezes para criar mais insâncias de Book no Banco.



Teste os comandos abaixo no console:

Listando as instancias criadas
Book.list()
Book.list().getClass()
Book.list().title

Acessando os resultados por atributo
Book.findAllByTitle(“Lua%”)

Acessando os resultados por atributo com paginação
Book.findAllByTitle(“Lua%”, [ max:2])

Para maiores informações consulte http://www.grails.org/doc/1.0.x/

Banco de Dados

Você deve ter reparado que nós persistimos objetos da classe livro sem ter configurado nenhum Banco de Dados ou datasource. Isto foi possível por que Grails também já vem com um Banco de Dados embutido e pré configurado, o HSQL. A configuração inicial está definida para criar o Banco de Dados em memória e com a opção create-drop, o que faz com que sempre que você restarta a aplicação os dados persistidos sejam apagados.

Alterando o Arquivo de Configuração de Banco de Dados

Dentro da pasta conf existe uma classe chamada DataSource.groovy, é nesta classe que ficam as configurações de Banco. Abra esta classe no editor.
Na seção development, vamos alterar para que o banco de dados fique em um arquivo e para que os dados não se percam ao restartar a aplicação. Altere para que fique da seguine forma:

[mais código aqui...]
// environment specific settings
environments {
development {
dataSource {

dbCreate = "update"
url = "jdbc:hsqldb:file:devDb;shutdown=true"

// dbCreate = "create-drop" // one of 'create', 'create-drop','update'
// url = "jdbc:hsqldb:mem:devDB"

}
}
[mais código aqui...]

Voltando para a parte Web, vamos criar um controller para que os livros possam ser criados a partir do browser. Para isto digite no prompt o comando
C:\myapp>grails create-controller Book

Abaixo o controller que acabamos de criar.



Mais uma vez no prompt inicie a aplicação com o comando C:\myapp>grails run-app e você verá na home da aplicação que um link para o controller foi criado como na figura abaixo:



Ao clicar no link você irá receber um erro 404 como na tela abaixo:



Isto aconteceu por que por convenção, é necessário que exista uma view para cada action do controller. Repare que a página não encontrada foi a página /WEB-INF/grails-app/views/book/index.jsp e se você reparar no controller índex é o nome da action default criada no controller pelo comando create-controller.

Scaffolding

O recurso de scaffold permite a você gerar automaticamente uma aplicação inteira para uma determinada classe de domínio incluindo as views necessárias e as actions para as operações de CRUD do controller.
Então vamos alterar o BookController para que agora as views e actions de CRUD sejam geradas automaticamente. Altere o BookController para que ele fique igual a figura abaixo.



Depois de alterado salve o controller, reinicie a aplicação, e ao clicar novamente no link BookController você verá uma página com a listagem dos livros inseridos no Banco de Dados anteriormente como na figura abaixo.



Explore esta página, adicione, edite, exclua, liste novos livros etc.

Dê Stop na aplicação pelo prompt CTRL+C e digite o comando
C:\myapp>grails generate-all Book (digite y para permitir sobrescrever o arquivo BookController caso seja necessário).
Agora abra novamente o BookController e você verá o código das actions responsáveis pelo CRUD dos livros.

Plugins

Grails possui uma comunidade bastante ativa no que diz respeito a criação de plugins então vamos fazer uso de alguns deles. Para maiores informações sobre plugins acesse http://www.grails.org/plugin/category/all

Nossa aplicação necessita de segurança, então vamos utilizar o plugin acegi – Spring Security Plugin.
Obs: Precisa de Internet para baixar o plugin.

Acegi – Spring Security Plugin

No prompt de comando digite C:\myapp>grails install-plugin acegi
Depois de instalado o plugin na aplicação temos mais 3 comandos disponíveis. São eles:
  • grails create-auth-domains (Cria uma página de autenticação)
  • grails generate-manager (Cria uma página para o gerenciamento das informações e permissões dos usuários da aplicação)
  • grails generate-registration (Cria uma página para realização de cadastro de usuários para a aplicação)

Digite no prompt C:\myapp>grails create-auth-domains, depois C:\myapp>grails generate- registration e por ultimo C:\myapp>grails generate- manager

Reinicie a aplicação com o comando C:\myapp>grails run-app e a home deve ter mais 7 controllers como na imagem abaixo:


Criando Roles

Clique no controller AuthorityController e em seguida clique em New Authority para adicionarmos papéis para os usuários da aplicação.
Vamos adicionar a Role ROLE_USER como na figura abaixo:



Clique em create.

Registrando Usuários

Clique no controller RegisterController e adicione um usuário para a aplicação como na tela abaixo:



Clique em Create.

Acessando a Aplicação

Clique no LogoutController e em seguida LoginController e você verá a tela de login da aplicação como abaixo:



Configurando padrões de Segurança para URLs
Clique em RequestmapController e em seguida clique em New Requestmap.
Configure para que somente os usuários associados a Role ROLE_USER possam acessar as páginas dos livros. Veja a figura abaixo:



Clique em Create.

Para testar clique em Home e clique em BookController, você verá a lista de livros criados. Clique em Home, em seguida em LogoutController e depois clique em BookController. Você será solicitado a logar na aplicação.

quinta-feira, 14 de maio de 2009

Debugando código javascript no IE com Microsoft Visual Web Developer (Free)

Debugar código JS no IE é realmente uma dor de cabeça mas se você estiver disposto a instalar o Visual Web Developer da Microsoft 127MB (Free) seus problemas podem estar com os dias contados.

O único problema para a utilização do VWD para debugar JS é que ele não se conecta ao processo automaticamente, então vamos ver como fazer para resolver este problema.

Primeiro é necessário habilitar depuração no IE. Vai em Ferramentas > Opções da Internet > Avançadas. Nas configurações *desmarque* a opção "Desabilitar depuração de script (Internet Explorer)" e *marque* a opção "Exibir notificação sobre cada erro de script"

Agora baixe e instale o VWD. http://www.microsoft.com/express/vwd/

Depois de Instalado abra o VWD e crie um New Empty Website.
Clique no botão Start Debugging. Habilite a depuração para este site. VWD irá startar o IE em modo de depuração.

Feito isso basta você abrir a página que contém o código que você quer debugar na aba que o VWD abriu em modo debug e pronto, se tiver algum erro de JS o VWD irá interromper o processo parando na linha onde está o problema. 

Agora é com você. ;)

sexta-feira, 13 de fevereiro de 2009

Java e Variáveis de Ambiente

Como primeira postagem achei que seria interessante postar como instalar o JDK (java Developer Kit) e configurar as variáveis de ambiente para que as classes possam ser compiladas. Vale ressaltar que esta descrição é aplicada para sistemas operacionais Windows.

Vamos ao que interessa:

Instalando o JDK
  1. Vá no site da Sun, baixe e instale o JDK mais atual, no momento desta postagem o JDK 6 update 12.
Configurando as variáveis de ambiente
  1. Clique com o botão direito em cima do ícone Meu Computador na sua área de trabalho e no menu escolha a opção propriedades
  2. Selecione a aba Avançado e lá clique no botão Variáveis de Ambiente.
  3. Crie uma nova variável de ambiente (variável do sistema, a segunda opção) com o nome JAVA_HOME e defina como valor da variável o caminho da instalação do JDK, ex: C:\Arquivos de programas\Java\jdk1.6.0_12
  4. Agora, ainda nas variáveis do sistema, localize a variável path e clique em editar. No início do valor da variável coloque %JAVA_HOME%/bin; (Não apague o valor que estava antes, simplesmente adicione).
  5. Por último crie uma variável chamada CLASSPATH e defina como valor o caminho da pasta lib da instalação do JRE. Ex: ".;C:\Arquivos de programas\Java\jre6\lib"
Testando
  1. Clique em iniciar/executar e digite cmd
  2. digite javac no prompt de comando
  3. Se tudo correu bem irão ser exibidas as opções de compilação do javac e você já poderá criar compilar e executar as suas classes java.
Próxima postagem:
O Tradicional Hello World - Criação, Compilação e Execução de uma classe.

Abraços e até lá.