Olá, estou fazendo um projeto usando a linguagem Java, mais especificamente Controle de Acesso. Porém estou com dificuldades quanto a matérias e alguns exemplos.
Precisaria de um exemplo de um applet que execute uma aplicação q está num diretório qualquer, ou que crie um arquivo qualquer em um diretório qualquer.
Oi
gdbrito, seja bem vindo ao PJ; :):)
Bom, uma applet, para fazer isso, primeiramente ela deve ser assinada, ou seja, ter um certificado que lhe permita tais direitos no cliente… Tu já tem alguma coisa em andamento? Sabe assinar a applet?
T+
Olá Paulo César,
Eu sei como assinar um applet, porém eu estou seguindo um tutorial da SUN, e pelo que eu consegui entender eu poderia fazer isso somente dando permissão através do arquivo java.policy. Essa parte de Assinatura digital não passaria a fazer parte da API criptográfica do Java?
Ah, eu já tenho alguns exemplos, mas só com aplicação não com applets, e isso é essencial para o meu projeto.
Agradeço demais a sua atenção, guilherme
Oi
Bom, se o problema é comk o .java.policy, é só tu colocar o conteúdo abaixo nele:
[code]keystore "file:/acpm/www/online/graphOnline/key", "key";
grant signedBy "key", codeBase "file:/acpm/www/online/graphOnline/exataxOnline_A.jar" {
permission java.security.AllPermission;
};
[/code]
Mudando é claro os endreços.
T+
Realmente eu preciso assinar mesmo o applet, vai pela dica…
Realmente eu preciso assinar mesmo o applet, vai pela dica…
Eu preciso criar um arquivo .jar, para assinar a applet, ou isso é só para aplicações?
Eu to baixei um Trail do J2sdk1.2 da página da SUN, e segui tudo certinho o “Quick Tour of Controlling Applets” e o “Signing Code and Granting It Permissions”, porém, qndo vou executar meu applet é gerada uma mensagem “Exception in thread “main” java.lang.NoSuchMethodError: main”, o q será q tem de errado, será que é a forma como eu estou assinando?
Guilherme
Pessoal estou com outro problema, agora com controle de acesso usando sockets.
O cliente executar perfeitamente, porém o Servidor retorna uma Exceção de controle de Acesso.
o código está a seguir:
import java.net.*;
import java.io.*;
import java.security.*;
import java.net.SocketPermission;
class SocketServidor{
public static void main(String args[]) {
SocketPermission SP1 = new SocketPermission ("localhost:9000", "accept,connect,listen");
System.out.println("Abrindo servidor de socket...");
try{
AccessController.checkPermission(SP1);
ServerSocket sServidor = new ServerSocket(9000);
System.out.println("TENTANDO CONECTAR...");
while (true){
//Servidor criado e esperando
System.out.println("Esperando Mensagem...");
Socket sCliente = sServidor.accept();
//Leitura do dados vindos do cliente
BufferedReader dadosCliente = new BufferedReader(new InputStreamReader(sCliente.getInputStream()));
String s = dadosCliente.readLine();
System.out.println("Mensagem do Socket Cliente ->"+s);
}
}catch (Exception e){
System.out.println("ERRO!!!"+e); }
System.out.println("Conexao Encerrada");
}
}
então executo com chamando o gerenciador de segurança como a seguir:
java -Djava.security.manager SocketServidor e retorna a seguinte mensagem de erro:
java.security.AcessControlException: access denied (java.net.SocketPermission 127.0.0.1:1183 accept, resolve)
a última mensagem q é impressa antes de retornar o erro é:
Esperando mensagem…
Será que alguém saberia com resolver esse problema?
[color=“red”]Editado para conter o BBCode CODE - jeveaux[/color]
Oi
Guilherme, você tem que gerar o outro arquivo JAR sim, é ele que terá os privilegios dados pelo certificado de segurança…
Este erro é pq Applet não tem método main e sim um init e tu deve ta tentando rodar a applet como um aplicativo.
T+