JavaServerFaces - Capturando o endereço IP e o ID da Sessão
Como obter o Endereço IP e o número da Sessão em projetos que utilizam a tecnologia Java ServerFaces.
Para demonstração prática neste artigo será utilizado as seguintes ferramentas:
- Eclipse 3.4 (Ganymede), que você encontra disponível para download no seguinte endereço:
http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/ganymedesr2
Versões disponíveis:
Windows 32-bit
Mac OS X(Carbon)
Linux 32-bit
Linux 64-bit
- plugin JBoss Tools 3.0, que você encontra disponível para download no seguinte endereço:
http://www.jboss.org/tools/download.html
Versões disponíveis:
Windows
Linux 32-bit
Linux 64-bit
Mac OS X
- Web-container Apache TomCat 6.0.20, que você encontra disponível para download no seguinte endereço:
http://tomcat.apache.org/download-60.cgi
Formato disponíveis:
apache-tomcat-6.0.20.exe (Instalador Windows)
apache-tomcat-6.0.20.zip (Arquivo Compactado)
apache-tomcat-6.0.20.tar.gz (Arquivo Compactado)
Criando o Projeto
Crie um projeto JSF de exemplo em:
File -> New -> JSF Project
Em Project Name, digite trabcomjsf
Em JSF Environment, escolha a opção: JSF 1.2 with Facelets
Em Template, escolha a opção: Facelets KickStartWithRILibs, (escolhendo esta opção, todas as bibliotecas necessárias para a aplicação já serão adicionadas automaticamente).
agora localize a classe Person.java no pacote demo conforme figura abaixo:
e adicione as seguintes linhas de código:
/** Identifica o endereço IP remoto*/
public String getmeuIP() {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
return request.getRemoteAddr();
}
/** Identifica o ID da sessão */
public String getminhaSession() {
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
return session.getId();
}
Resolva os erros encontrados importando as respectivas bibliotecas, listadas a seguir:
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
Agora, aproveite a página que foi criada pela IDE e inclua as seguintes linhas no arquivo inputname.xhtml, conforme figura abaixo:
value="#{person.meuIP}" />
value="#{person.minhaSession}" />
Verificando a aplicação
Clique no projeto com o botão direito do mouse, e escolha:
Run as -> Run on Server
Escolha o servidor Apache TomCat 6
OBS: exclua o arquivo "el-api.jar" do diretório: trabcomjsf\WebContent\WEB-INF\lib
Resultado Final:
IP - executado em localhost (127.0.0.1)
Session ID - número da sessão.
Estes dados podem ser úteis para auditoria e segurança de sistemas, pois podem servir para registrar de onde o usuário está acessando o sistema, principalmente em uma rede interna, e que podem ser complementados com informações adicionais, como por exemplo:
quando? Date data = new java.util.Date();
quem? (nome do usuário)
e o que fez? (inclusão, alteração ou exclusão).
Além que estas informações também podem ser persitidas em banco de dados, para controle interno.
Referências:
Get session and remote ip in managed bean.
http://www.experts-exchange.com/Programming/Languages/Java/J2EE/Frameworks/JSF/Q_24237062.html
Retrieving Session ID value from a JSF Request
http://stackoverflow.com/questions/772541/retrieving-session-id-value-from-a-jsf-request
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo