Autenticação em Sistemas Desktop

A realização de autenticação em sistemas desktop é feita através da utilização de um serviço remoto disponibilizado pela arquitetura. Para isso, deve-se acrescentar as seguintes classes no projeto Desktop:

Além de adicionar os seguintes jars ao classpath:

Em seguida, será necessário criar um arquivo applicationContext.xml e declarar os beans com o serviço remoto de autenticação e o serviço de autenticação por token, pois o primeiro depende deste. Abaixo segue um exemplo de configuração:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 
	<context:annotation-config/>
 
	<bean id="tokenAutenticacaoInvoker" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
		<property name="serviceUrl" value="${sharedRemoteHost}/remoting/TokenAutenticacaoService"/>
		<property name="serviceInterface" value="br.ufrn.integracao.interfaces.TokenAutenticacaoRemoteService"/>
	</bean>
 
	<bean id="autenticacaoUsuarioInvoker" class="br.ufrn.integracao.seguranca.TokenAuthHttpInvokerProxyFactoryBean">
		<property name="sistema" value="2"/
		<property name="serviceUrl" value="${sharedRemoteHost}/shared/remoting/AutenticacaoUsuarioService"/>
		<property name="serviceInterface" value="br.ufrn.integracao.interfaces.AutenticacaoUsuarioRemoteService"/>
	</bean>
 
</beans>

Para utilizar, basta pegar o bean autenticacaoUsuarioInvoker no application context e utilizar seus métodos, conforme pode-se ver na listagem abaixo:

ApplicationContext ac = new ClassPathXmlApplicationContext("teste/applicationContext.xml");
AutenticacaoUsuarioRemoteService service = (AutenticacaoUsuarioRemoteService) ac.getBean("autenticacaoUsuarioInvoker");
 
if (service.autenticaUsuario("fulano", "1234")) {
	InfoUsuarioDTO usuario = service.carregaInfoUsuario("fulano");
	List<PermissaoDTO> permissoes = service.carregaPermissoes(usuario);
 
	// ...
}