Passaporte para Sistemas Desktop

Utilizado quando um sistema desktop precisa abrir uma URL do sistema web. Assim, é necessário que o usuário seja automaticamente logado no sistema para o qual ele deseja ir, fazendo-se necessária a criação de um passaporte de logon. A criação de um Passaporte de Logon em sistemas desktop pode ser feita através do uso de um serviço remoto chamado PassaporteDesktopService.

O passaporte para sistemas desktop é criado através de um serviço remoto que utiliza o Spring Remoting. Assim, para que a aplicação utilize o passaporte, ela deve possuir as bibliotecas do Spring em seu classpath. Além disso, é necessário criar no seu applicationContext.xml o seguinte bean:

<bean id="passaporteDesktopService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
	<property name="serviceUrl" value="http://localhost:8080/shared/remoting/PassaporteService" />
	<property name="serviceInterface" value="br.ufrn.arq.desktop.PassaporteDesktopService" />
</bean>

Onde serviceUrl é a URL do serviço remoto, que está implantado no contexto shared na URL /remoting/PassaporteService; e serviceInterface é a interface remota do serviço, que é a br.ufrn.arq.desktop.PassaporteDesktopService.

Em seguida, é necessário invocar o serviço através do lookup do bean passaporteDesktopService no Application Context do Spring, e chamar o método criarPassaporte, passando como parâmetros o id do usuário, o login do usuário, o sistema de origem e o sistema de destino, conforme mostrado no código abaixo:

ApplicationContext ac = new ClassPathXmlApplicationContext("br/ufrn/arq/desktop/applicationContext.xml");
PassaporteDesktopService service = (PassaporteDesktopService) ac.getBean("passaporteDesktopService");
 
service.criarPassaporte(3232, "david", 3, 2);

Após criar o passaporte, é necessário chamar a URL do sistema web utilizando o browser do usuário. Para isso, foi criada a classe ChamarSubsistema, que possui o método estático chamar(), para o qual passamos como argumento a URL desejada.

Um exemplo completo pode ser visto no código abaixo, no qual criamos o passaporte e chamamos a URL:

ApplicationContext ac = new ClassPathXmlApplicationContext("br/ufrn/arq/desktop/applicationContext.xml");
PassaporteDesktopService service = (PassaporteDesktopService) ac.getBean("passaporteDesktopService");
 
service.criarPassaporte(3232, "david", 3, 2);
 
ChamarSubsistema.chamar("http://localhost:8080/sigaa/logar.do?dispatch=logOn&&user.login=david&passaporte=true&url=/sigaa/portais/discente/discente.jsf");
  • desenvolvimento/especificacoes/arquitetura/servicos/passaporte_desktop.txt
  • Última modificação: 2017/04/03 18:10
  • (edição externa)