O "quase transparente" ocorre uma vez que essa modalidade de distribuição impõe algumas regras de segurança. Alguns recursos, como o uso de I/O, exigem que o JAR seja assinado (sign) com um certificado, garantindo ao usuário a autenticidade da aplicação.
O kit de desenvolvimento Java, disponibiliza o jarsigner. Um programa que cria e verifica certificados em arquivos JAR. A boa notícia é que projetos desenvolvidos com o Maven, também podem contar com esse recurso!
Através do plugin Jarsigner, é possível indicar ao Maven que durante o build do projeto o JAR deverá ser assinado com um determinado certificado. A seguir o trecho do pom.xml com as definições do Maven para assinar o JAR:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- definicoes do artefato e dependencias omitidas --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.2</version> <executions> <execution> <id>sign</id> <phase>package</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> <configuration> <keystore>/home/yaw</keystore> <alias>key</alias> <storepass>mykeypass</storepass> <keypass>mykeypass</keypass> </configuration> </plugin> </plugins> </build> </project>
Note o trecho que configuraç a execução do plugin, a tag phase indica que o JAR do projeto deve ser assinado durante a fase package do build. Outro detalhe é que nas configurações indicamos as propriedades do certificado:
- keystore: local (diretório) aonde a chave foi armazenada;
- alias: nome da chave;
- storepass e keypass: senha de acesso da chave;
Caso a aplicação, distribuída pelo Java Web Start, seja assinado as dependências também devem ser assinadas. Ou seja, todos os JARs complementares ao projeto também devem ser assinados. Com o jarsigner podemos assinar JARs terceiros, o
mesmo vale para o plugin do Maven.
Na YaW desenvolvemos alguns projetos para demonstração que utilizam essa abordagem. Veja e execute o projeto Aplicação Desktop com Swing e JPA/Hibernate. Saiba mais detalhes sobre o Java Web Start no tutorial online da Oracle.
Na YaW desenvolvemos alguns projetos para demonstração que utilizam essa abordagem. Veja e execute o projeto Aplicação Desktop com Swing e JPA/Hibernate. Saiba mais detalhes sobre o Java Web Start no tutorial online da Oracle.
@edermag
No comments:
Post a Comment