Páginas

sábado, 16 de junho de 2012

Divulgar seu blog ou site de forma gratuita?

Saiu o XTream Me!. Um site onde você pode postar o link com uma descrição da postagem do seu site ou blog. É muito simples.

Acesse XTream Me! e divulgue seu espaço XD

quarta-feira, 21 de março de 2012

Criptografia SSL/TSL no Apache2


Introdução
 A criptografia elimina algumas falhas de segurança como MITM (Man In The Middle) e problemas na integridade.

Configurando o Apache2
 Após a instalação do servidor Apache2, execute o comando:

 sudo a2enmod ssl 

 É necessário um certificado para a criptografica do canal. Se necessário, pode-se utilizar do OpenSSL para gerar um certificado uma KeyStore como segue:

 openssl req -new -x509 -nodes -out server.crt -keyout server.key 

 O ideal é utilizar-se de um certificado provido por uma autoridade certificadora, eliminando assim o risco de Phishing para as entidades utilizadoras do serviço provido via SSL/TLS.

 Após adquirido o certificado, é necessário configura uma nova instância do Apache2. Para fins de organização, as configurações ficam dentro da pasta sites-available, dentro da pasta onde o apache está instalado. A instalação já fornece uma configuração padrão chamada default-ssl. Efetue uma cópia desse arquivo para um novo arquivo que será a nova instância, no nosso caso sample-ssl:

 sudo cp default-ssl sample-ssl 


 Após copiada a configuração do servidor para instância que será utilizada, é necessário configurar com os certificados gerados anteriormente. Para tanto, abra em modo edição o arquivo sample-ssl encontre as linhas a serguir e defina com o endereço dos certificados:
 SSLCertificateFile /etc/apache2/ssl/server.crt 
 SSLCertificateKeyFile /etc/apache2/ssl/server.key 

 Agora basta incluir sample-ssl como um site selecionado e recarregar o Apache. Para tanto efetue os seguintes comandos:

 sudo a2ensite sample-ssl 
 sudo /etc/init.d/apache2 reload 


 Agora se efetuar uma chamada para https://localhost aparecerá a página default do Apache (Its Works). 

 Se o certificado não for autenticado por uma autoridade verificadora, então vai aparecer uma mensagem perguntado se você deseja continuar. Selecione a opção para prosseguir.
 Então o acesso será feito, mas ainda pode manter um ícone mencionando que o certificado não é válido.

 Para que esta mensagem não seja mais exibida, adquira um certificado autenticado por uma autoridade verificadora. Se for uma comunicação entre serviços, é interessante criar um mecanismo para autenticação mútua, assim as  interação entre as aplicações irá acontecer de forma segura.

segunda-feira, 19 de março de 2012

Um pouco sobre Vaadin

Introdução
Bom, Vaadin é uma extensão do GWT, com uma diferença interessante. O processamento e geração do Javascripts são feitos no lado server. Se quiser conferir, https://vaadin.com/, possui vários exemplos.

Vou mostrar um exemplo simples, que é basicamente como vem na aplicação blank do plugin para o Eclipse.


Criando a aplicação
Depois de instalar o plugin para Eclipse (confira aqui https://vaadin.com/eclipse), vá em File>New...>Vaadin Project.

Dê o nome do projeto como (no meu caso foi sample_blog), e depois forneça uma estrutura de pacote e o nome da aplicação que você está criando (coloquei package=com.example.sampleblog e Application=SampleBlogApplication).

Ok, agora é só finalizar e a aplicação inicial está criada. Assim, você pode dar uma olhada na classe SampleBlogApplication que vai ter a seguinte estrutura:

Código fonte 1
package com.example.sampleblog;


import com.vaadin.Application;
import com.vaadin.ui.*;


public class SampleBlogApplication extends Application {
@Override
public void init() {
Window mainWindow = new Window("Sample_blog Application");
Label label = new Label("Hello Vaadin user");
mainWindow.addComponent(label);
setMainWindow(mainWindow);
}


}

Entendendo o código fonte 1
Basicamente o Vaadin funciona pela classe Application. O método init que foi sobrescrito efetua a inicialização da aplicação, e a criação dos componentes da aplicação. A classe Window representa um janela ou uma sub janela, dependendo de onde for adicionada na aplicação. No nosso caso, estará representando uma janela. E a classe Label, por incrível que pareça, é um componente de rótulo.

Window, é um Container, e por isso podemos adicionar componentes a ele. Em mainWindow.addComponent(label) adicionamos o Label que foi criado ao container Window. Após isso devemos adicionar a Window a nossa aplicação, senão ela não vai aparacer XD

Mapeamento do Servlet
Após criar a aplicação, precisamos mapear o Servlet do Vaadin no web.xml:

<servlet>
<servlet-name>Sample_blog Application</servlet-name>
<servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>
<init-param>
<description>
Vaadin application class to start</description>
<param-name>application</param-name>
<param-value>com.example.sampleblog.SampleBlogApplication</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>Sample_blog Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

Deploy
Após fazer esta alteração no web.xml, basta exportar a aplicação como um arquivo WAR. Efetue o deploy da aplicação em algum container Web.


Depois acesse http://localhost:8080/app/ e vai aparecer o texto Hello Vaadin user. É interessante fazer uns testes com os componentes que o Vaadin proporciona, sem dúvida é possível fazer aplicações ricas para internet.

Abraços. Tchau!

quinta-feira, 15 de março de 2012

Implementando em Java Web Services Fácil Parte - 2

Bom, já mostramos como fazer um Web Service bem simples utilizando o framework XFire. Neste post vou mostrar como criar um Web Service simples com a API java no container WEB. Basicamente ele vai agir como um Servlet, mas sem estender nenhuma classe ou interface.


@WebService
public class WSSample{

@WebMethod()
public String sampleServiceMapped( @WebParam(name = "parameter") String parameter) {
System.out.println("Meu parâmetro: "+parameter);
                return "Resposta "+parameter;
        }

}

Vamos analisar cada item agora:

@WebService - indica que a classe será publicada como um Web Service;
@WebMethod - indica que será um método exposto pelo Web Service;
@WebParam - indica que um parâmetro com o nome de parameter será recebido e incluido no argumento parameter. Isto ajuda quando o nome do parâmetro e o nome argumento se diferenciam ou mesmo por questões de organização.

Agora basta publicar no web.xml como um Servlet:


<servlet>
<servlet-name>WSSample</servlet-name>
<servlet-class>br.com.sample.ws.WSSample</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WSSample</servlet-name>
<url-pattern>/wssample/WSSample</url-pattern>
</servlet-mapping>


Agora basta acessar o http://localhost:8080/app/wssample/WSSample?wsdl e está ai o descritor do serviço. Se gerar um cliente a partir disso irá aparecer "Meu Parâmetro <parametro>".

Boas implementações.

segunda-feira, 16 de janeiro de 2012

Iniciando no Android - Primeira aplicação

Bom, anteriormente vimos como gerar o ambiente para trabalhar com android (Iniciando no Android - Instalando o ambiente). Agora vamos ver como fazemos para criar a nossa primeira aplicação e rodá-la.

No Eclipse vá em File>New>Android Project. Então vai aparecer a janela para criar a nova aplicação, informe o nome da aplicação e clique em "Next".
Agora vem um passo importante, você precisa selecionar um "Build Target", ou seja, para qual versão será compilada sua aplicação. Como meu celular é meio que uma velharia entre os Smarts, selecionei API level 3 que representa o Android 1.5.

Agora nossa primeira aplicação já está criada. Vamos dar uma olhada na estrutura. Não vamos muito a fundo logo de cara.

1 - Os fontes que você vai implementar estão na pasta src/;
2 - A pasta gen/ possui apenas fontes gerados, portando não altere eles pois serão sobrescritos;
3 - Na pasta resources estarão localizados os gerenciadores de layout, imagens e o "cadastro" de strings;

Agora, para executar vamos ter de criar uma configuração para o emulador. Para tanto clique em "Window">"ADV Manager". Depois, na janela que abrir, clique em "New". Dê um nome para o o seu dispositivo, selecione o target compatível com o seu projeto (API level) e depois clique em "Create ADV".

Após isso, e ainda na janela do ADV Manager, selecione o dispositivo criado e clique em "Start" e logo em seguida, "Launch". Aguarde até o emulador estiver totalmente carregado.

Clique com o botão direito no seu projeto, vá em "Run As">"Android Application", e aguarde a sua aplicação ser executa do emulador. Pronto. Agora você pode olhar o código fonte e verificar como apareceu a mensagem e tudo mais.

Até mais.

quarta-feira, 11 de janeiro de 2012

Iniciando no Android - Instalando o ambiente

Android é o SO da Google para Mobiles. Vamo hoje ver como montar o ambiente para desenvolvimento em Android.

Primeiramente acesse http://developer.android.com/sdk/index.html e faça o download do SDK para o seu Sistema Operacional.

Depois de efetuado o Download, descompacte o arquivo em algum diretório de sua preferência.

Abra o seu eclipse, e vá em Help> Install New Software.
Adicione um novo Update Site com a URL:

https://dl-ssl.google.com/android/eclipse

Se não conseguir conectar por esta URL, tente a seguinte:
http://dl-ssl.google.com/android/eclipse

Se ainda assim não for possível efetuar a instalação do plugin, então efetue o download do arquivo contendo o plugin pelo link:

http://dl.google.com/android/ADT-16.0.1.zip

Depois inclua na instalação utilizando instalação por arquivo ("Help">"Install New Software">"Add">"Archive").  E selecione o arquivo zip.

Após a instalação do Plugin do Eclipse reinicie a IDE. Vai abrir uma janela solicitando que você faça o download do SDK ou aponte um diretório que já existe. Como efetuamos o download do SDK, vamos selecionar o diretório já existem da instalação.


Depois disso clique em Window>Android SDK Manager Selecione para instalar a pasta "Tools" (a pasta inteira), e depois a API Level que deseja trabalhar. Não é necessário instalar tudo, apenas a API level que deseja trabalhar.

Existem funções extras também, mas vai depender do desenvolvimento que você quer fazer.

Se tiver alguma dúvida, estamos ai XD.

quinta-feira, 5 de janeiro de 2012

Colocando GWT para compilar via Maven

Quando estamos testando uma tecnologia é bem interessante utilizar apenas a IDE para vincular as dependências e efetuar testes nas tecnologias que estamos usando. Porém, quando o projeto se torna algo concreto é necessário automatizar a gerência de configuração de dependências e reduzir a complixidade do vínculo de versões do produto.

Para isso existe o Maven. Este é uma ferramenta da Apache que fornece meios para que efetue a gestão de configuração do projeto (vínculo de dependências, número de versões, etc). Além disso, muitas das ferramentas de integração contínua existentes no mercado possuem integração direta com o Maven, facilitando o uso.

Para configurar o Maven para compilar o GWT, basta incluir a configuração do plugin na build do projeto.
O trecho do pom.xml ficaria assim:


<build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <version>2.4.0</version>
        <executions>
          <execution>
            <configuration>
              <modules>
                  <module>br.com.projeto.MeuModulo</module>
              </modules>
</configuration> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin> </plugins> </build>

O projeto deve mudar a estrutura também. Agora teremos duas áreas, a parte de fontes Java, e os descritores de módulos GWT. Ficando assim

projeto/src/main/java/br/com/projeto/client/MeuEntryPoint.java

projeto/src/main/resources/br/com/projeto/MeuModulo.gwt.xml

Configurado isso, e lógicamente fazendo as configurações para Build de um WAR no maven, basta rodar o mvn clean install que seus módulos vão compilar pelo Maven.

Abraços até mais.