Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sr.silva

Assinar um Applet

Recommended Posts

Pessoal,

 

Como faço para assinar um JAVA?

 

Já li vários tutoriais, links, sites e percebi que necessito de criar um arquivo .JAR...

 

Vi também sobre gerar um certificado...No entato, como não entendo muito sobre JAVA, quem pude me ajudar fico agradecido.

 

Trabalho hoje no netbeans.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Sr.Silva.

 

Sim, voce precisa criar uma certificação para assinar o seu applet via web.

 

Como voce utiliza o netbeans, fica mais fácil configurar o seu applet com um recurso chamado Web Start.

 

Entretanto, vou lhe explicar como fazer isto via DOS e via NetBeans.

 

1º) Via DOS.

Suponhamos que voce não estivesse utilizando o NetBeans e nem outra IDE qualquer e tivesse que fazer na unha. Sendo assim voce primeiro teria que compilar a sua applet e depois empacotá-la num projeto *.jar, isto pois, assinaturas de applets, bem como de aplicações desktops, tem que ser em cima de projetos *.jar. Vamos as códigos DOS.

 

 // Pra compilar
 F:\NetBeansProjects\WebCamStart\src\principal> javac WebCamCapture.java

 

No meu caso acima ele criou tres arquivos que são WebCamCapture$1.class, WebCamCapture$2.class e WebCamCapture.class. No seu caso pode até ser diferente, criando mais ou menos arquivos *.class, de acordo como foi desenvolvido a sua applet, não importa, o importante é que voce colocar todos os arquivos *.class no pacote *.jar desta forma:

 

 // Empacotando o projeto
 F:\NetBeansProjects\WebCamStart\src\principal> jar cvf WebCamCapture.jar *.class

 

Após isso, voce agora pode criar assinatura em duas etapas, primeiro criando a assinatura e depois atribuir a asssinatura o pacote *.jar. Vamos ao código

 

 // Criando a assinatura
 F:\NetBeansProjects\WebCamStart\src\principal> keytool -genkey -keystore sample.keystore -storepass storepwd -keypass keypwd -keyalg RSA -alias sample_key -validity 360 -dname "cn=SampleGroup,ou=Sample,c=Rio_de_Janeiro,s=RJ,c=BR"

// Atribuindo a assinatura ao *.jar
 F:\NetBeansProjects\WebCamStart\src\principal>jarsigner -keystore sample.keystore -storepass storepwd -signedjar WCAssigned.jar WebCamCapture.jar sample_key

//  Ele vai pedir um senha, digite "keypwd"

 

Pronto, a sua applet já está assinada, voce vai reparar que ele criou um outro arquivo jar (WCAssigned.jar), nome este que foi especificado por mim na assinatura, voce pode dar o nome que quiser. coloque este Arquivo *.jar, junto com um o arquivo "sample.keystore" dentro da pasta web onde funcionará a sua applet.

 

Agora, no código HTML, voce pode acessar a sua Applet com duas tags

 

  // Com a tag <applet>
  <applet width="800" height="600">
         <param name="codebase" value="../CaminhoDaApplet" />
         <param name="code" value="principal.WebCamCapture.class" />
         <param name="archive" value="WCAssigned.jar" />
  </applet>

 // Com a tag Object
 <!--[if !IE]>-->
       <object classid="java:principal.WebCamCapture.class" type="application/x-java-applet" height="600" width="800" >
				<param name="codebase" value="../CaminhoDaApplet" />
				<param name="archive" value="WCAssigned.jar" />
<!--<![endif]-->
  	<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" height="600" width="800" > 
				<param name="codebase" value="../CaminhoDaApplet" />
				<param name="code" value="principal.WebCamCapture" />
				<param name="archive" value="WCAssigned.jar" />
  	</object>
<!--[if !IE]>-->
  	</object>
<!--<![endif]-->

 

Repare que com a tag <object> ele identifica até o navegador e por isso é a tag mais confiável, pois a tag <applet> em certos navegadores está obsoleta, podendo não ser reconhecida no DOM do navegador.

 

2º) Via NetBeans

Bom, no NetBeans, fica um pouco mais fácil, pois, ao desenvolver a sua applet dentro de um projeto, ao compilar, ele compila a classe e empacota dentro de um *.jar numa tacada só, por isso, inicie um projeto e coloque sua applet dentro dele, de preferência dentro do pacote com o nome "principal", pois se voce reparar nos códigos da tags, eu estou invocando a classe digitando o nome do pacote primeiro.

 

- Antes de compilar o projeto, na barra de ferramentas "Projetos" que se encontra do lado esquerdo da IDE, clique com o botão direito em cima do nome do projeto da Applet e clique na opção "propriedades".

 

- Clique no nome "Web Start, logo abaixo de Application.

 

- Do lado direito, ative a caixa de checagem "Enable Web Start".

 

- Na Combo "Codebase" selecione a opção "User defined (e.g. HTTP deployment).

 

- Em "Codebase Preview" digite a URL do seu projeto Web, por exemplo: http://196.168.12,98:8080/WEBFUNC/web/CaminhoDaApplet, onde o WEBFUNC é o nome do seu projeto Web. No endereço de IP, pode ser também o nome do Servidor onde se encontra o seu projeto web. 8080 é a porta que o TomCat usa, se utilizar outro container de web, tal qual o glassfish, procure saber qual é a porta que ele usa.

 

- Não digite nada em "Icon", pois esta opção é mais utilizada para aplicações desktop publicadas na web com web start, onde será definido o ícone da aplicação.

 

- Deixe a opção "Allow offline" desmarcada e clique no botão "Customize" para criar a assinatura da applet. e ao aparecer nova caixa de diálogo, selecione a opção "self-signed by generated key" e click em "OK"

 

- Abaixo do botão "Customize" selecione a opção "Applet descriptor" e aparecerá logo abaixo a classe principal de sua Applet ("principal.WebCamCapture")

 

- click em "OK" e depois compile esse projeto.

 

- Na caixa de ferramentas do lado esquerdo, vá em "arquivos" e dentro da pasta "dist" do seu projeto, voce vai encontar tres arquivos que são no caso aqui WebCamCapture.jar, launch.html e launch.jnlp. Copie todos os tres para dentro da sua pasta da Applet no seu projeto Web, e utilize o código Applet do arquivo launch.html. o arquivo launch,jnlp é uma arquivo escrito em xml. que é invocado na tag <applet> do arquivo launch.html.

 

Contudo que após fazer todo este procedimento no NetBeans, voce ainda pode utilizar a tag <object> que descrevi acima, sem precisar invocar o launch.jnlp que também funcionará do mesmo jeito.

 

Espero ter sido claro, é se houver qualquer dúvida é só postar aqui

 

Um abraço.

 

-

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.