applet + jdbc
От: passer  
Дата: 15.07.05 04:34
Оценка:
подскажите пожалуйсто как из апплета обрашатся к удоленной(не на локальном компе)... он жалуется что нету доступа

(очень прошу не говарите чтото типо "а я знаю что там не правильно..". прошу также учесть и то что я не так довно пишу на java. заранее всем спосибо)
Re: applet + jdbc
От: kostaky Россия  
Дата: 15.07.05 05:53
Оценка:
Здравствуйте, passer, Вы писали:

Экстрасенсы здесь не сидят. StackTrace в студию!
Re[2]: applet + jdbc
От: Аноним  
Дата: 15.07.05 06:24
Оценка:
Здравствуйте, kostaky,

s1="jdbc:mysql://10.0.143.222:3307/db7690?user=test&password=test1";

conn = DriverManager.getConnection(s1);

нет доступа
s1="jdbc:mysql://127.0.0.1:3306/db7690?user=test&password=test1";

conn = DriverManager.getConnection(s1);
работает
Re: applet + jdbc
От: DemAS http://demas.me
Дата: 15.07.05 06:45
Оценка:
Здравствуйте, passer, Вы писали:

P>подскажите пожалуйсто как из апплета обрашатся к удоленной(не на локальном компе)... он жалуется что нету доступа


А на удаленной машине открыт порт ?
... << RSDN@Home 1.1.4 beta 7 rev. 501>>
Re[3]: applet + jdbc
От: kostaky Россия  
Дата: 15.07.05 06:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, kostaky,


А> s1="jdbc:mysql://10.0.143.222:3307/db7690?user=test&amp;password=test1";


А> conn = DriverManager.getConnection(s1);


А>нет доступа

А> s1="jdbc:mysql://127.0.0.1:3306/db7690?user=test&amp;password=test1";

А> conn = DriverManager.getConnection(s1);

А>работает

Точно ответить не могу, с MySQL не работал, может MySQL и не слушает порт 3307, а слушает 3306 — ну и подключайтесь к 3306 — какие проблемы?
Re[4]: applet + jdbc
От: passer  
Дата: 15.07.05 07:19
Оценка:
Здравствуйте, kostaky, Вы писали:

K>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, kostaky,


А>> s1="jdbc:mysql://10.0.143.222:3307/db7690?user=test&amp;password=test1";


А>> conn = DriverManager.getConnection(s1);


А>>нет доступа

А>> s1="jdbc:mysql://127.0.0.1:3306/db7690?user=test&amp;password=test1";

А>> conn = DriverManager.getConnection(s1);

А>>работает

K>Точно ответить не могу, с MySQL не работал, может MySQL и не слушает порт 3307, а слушает 3306 — ну и подключайтесь к 3306 — какие проблемы?


база точно прослушивает 3307 порт
и даже ява может с нею работать... т.к. проверял из фва приложения..
а аплет не может
Re[2]: applet + jdbc
От: passer  
Дата: 15.07.05 08:10
Оценка:
Здравствуйте, DemAS, Вы писали:

DAS> А на удаленной машине открыт порт ?


да... у меня даже через java приложения той же строкой для коннекта подключатся получалось
Re: applet + jdbc
От: Lucker Беларусь http://lucker.intervelopers.com/
Дата: 15.07.05 08:11
Оценка:
Здравствуйте, passer, Вы писали:

P>подскажите пожалуйсто как из апплета обрашатся к удоленной(не на локальном компе)... он жалуется что нету доступа


P>(очень прошу не говарите чтото типо "а я знаю что там не правильно..". прошу также учесть и то что я не так довно пишу на java. заранее всем спосибо)


Твоя проблема в том, что апплеты запускаются в ограниченной правилами безопасности среде (поищи в интернете про модель песочницы — sandbox).
Одно из таких правил запрещает коду апплета конектится к удаленным хостам, кроме того с которого он был загружен.
Выхода 3:
1) грузить апплет с хоста, где расположена база данных.
2) настроить security environment jvm в браузере так, чтобы апплет мог лазить на другой хост (минус этого решения в том, что надо настраивать каждую клиентскую машину. Так же, если настраивает не опытный человек, можно поломать песочницу, и, таким образом, другие апплеты с вредоносным кодом могут получить доступ к защищаемым ресурсам системы).
3) подписать апплет. Это даст возможность аплету обойти ограничения песочницы (если пользователь, загрузивший апплет, даст на это добро)

Самый правильный вариант, ИМХО, — 3!
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[5]: applet + jdbc
От: kostaky Россия  
Дата: 15.07.05 08:15
Оценка:
Здравствуйте, passer, Вы писали:

Может следует включить нечто вроде в файл sll.policy

grant {
permission java.security.AllPermission;
};


appletviewer -J"-Djava.security.policy=all.policy" your_applet.html

К сожалению, точнее ответить не могу, т.к. с апплетами не работал. Может следует подписать jar апплета?
Re[2]: applet + jdbc
От: kostaky Россия  
Дата: 15.07.05 08:22
Оценка:
Здравствуйте, Lucker, Вы писали:


L>2) настроить security environment jvm в браузере так, чтобы апплет мог лазить на другой хост (минус этого решения в том, что надо настраивать каждую клиентскую машину. Так же, если настраивает не опытный человек, можно поломать песочницу, и, таким образом, другие апплеты с вредоносным кодом могут получить доступ к защищаемым ресурсам системы).

L>3) подписать апплет. Это даст возможность аплету обойти ограничения песочницы (если пользователь, загрузивший апплет, даст на это добро)

L>Самый правильный вариант, ИМХО, — 3!


По-видимому предложенный мной вариант с securitymanager это и есть 2 вариант, но я согласен с тем, что лучше всего подписать jar апплета. В Sun Java Tutorial есть раздел посвящённый генерации keystore и последующему подписыванию jar.
Re[2]: applet + jdbc
От: passer  
Дата: 15.07.05 09:23
Оценка:
Здравствуйте, Lucker, Вы писали:


L>Самый правильный вариант, ИМХО, — 3!

я прописал аплет. проблем не было. но толку тоже не стало... дает туже самую ошибку
что может быть не так??????
Re[3]: applet + jdbc
От: Lucker Беларусь http://lucker.intervelopers.com/
Дата: 15.07.05 09:30
Оценка:
Здравствуйте, passer, Вы писали:

L>>Самый правильный вариант, ИМХО, — 3!

P>я прописал аплет. проблем не было. но толку тоже не стало... дает туже самую ошибку
P>что может быть не так??????

Ну наэтом мои экстрасенсорные способности закончились. показыва что за ошибка!

Хотя нет, чт-то улавливаю. АААААА. Прилив СИЛЫ! Полагаю может быть проблемма в proxy, за которым сидишь ты
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[4]: applet + jdbc
От: passer  
Дата: 15.07.05 09:49
Оценка:
Здравствуйте, Lucker, Вы писали:

L>Хотя нет, чт-то улавливаю. АААААА. Прилив СИЛЫ! Полагаю может быть проблемма в proxy, за которым сидишь ты



у меня действительно есть прокси... если проблема с прокси то будетли аплет работать под nat
а ощибка самая обычная. вот код

    public void RefreshConnection() {
        
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            String s1;
            
            s1="jdbc:mysql://10.0.143.222:3307/db7690?user=test&password=test0";
            
            conn = DriverManager.getConnection(s1);
            stmt = conn.createStatement();
        }
        catch (Exception Ex) {System.out.println("Error: Connection string - "+"jdbc:mysql:"+s);jButton5.setText("shet");};
        
    }

а результатом бывает такой

    Error: Connection string — jdbc:mysql://10.0.143.222:3307/db7690?user=test&amp;passw
    ord=test0
    com.mysql.jdbc.CommunicationsException: Communications link failure due to under
    lying exception:

    ** BEGIN NESTED EXCEPTION **

    java.net.SocketException
    MESSAGE: java.security.AccessControlException: access denied (java.net.SocketPer
    mission 10.0.143.222:3307 connect,resolve)
Re[5]: applet + jdbc
От: kostaky Россия  
Дата: 15.07.05 10:18
Оценка:
Здравствуйте, passer, Вы писали:



P>** BEGIN NESTED EXCEPTION **


P>java.net.SocketException

P>MESSAGE: java.security.AccessControlException: access denied (java.net.SocketPer
P>mission 10.0.143.222:3307 connect,resolve)

Судя по всему, проблемы не в прокси, а именно с Security — но после подписания апплета всё должно было быть нормально. Попробуй 2 вариант.
Re[3]: applet + jdbc
От: Infernal Россия  
Дата: 15.07.05 10:19
Оценка:
Здравствуйте, kostaky, Вы писали:

K>Здравствуйте, Lucker, Вы писали:



L>>2) настроить security environment jvm в браузере так, чтобы апплет мог лазить на другой хост (минус этого решения в том, что надо настраивать каждую клиентскую машину. Так же, если настраивает не опытный человек, можно поломать песочницу, и, таким образом, другие апплеты с вредоносным кодом могут получить доступ к защищаемым ресурсам системы).

L>>3) подписать апплет. Это даст возможность аплету обойти ограничения песочницы (если пользователь, загрузивший апплет, даст на это добро)

L>>Самый правильный вариант, ИМХО, — 3!


K>По-видимому предложенный мной вариант с securitymanager это и есть 2 вариант, но я согласен с тем, что лучше всего подписать jar апплета. В Sun Java Tutorial есть раздел посвящённый генерации keystore и последующему подписыванию jar.


Согласен с предыдущими ораторами

Так же хотелось бы заметить, что использование соединения с базой данных напрямую из апплета — билет в один конец с точки зрения безопасности.
Лучше использовать промежуточный слой на стороне веб сервиса. Это и сделает приложение безопасным и уменьшит обьем апплета т.к. вся лолгика останется на сервере.
Re[6]: applet + jdbc
От: passer  
Дата: 15.07.05 10:48
Оценка:
Здравствуйте, kostaky, Вы писали:

K>grant {

K> permission java.security.AllPermission;
K>};
это в аплет надо прописывать???. пожалуйсто кто нибудь напишите мне об этом поподробнее
Re[7]: applet + jdbc
От: kostaky Россия  
Дата: 15.07.05 11:22
Оценка:
Здравствуйте, passer, Вы писали:

P>Здравствуйте, kostaky, Вы писали:


K>>grant {

K>> permission java.security.AllPermission;
K>>};
P>это в аплет надо прописывать???. пожалуйсто кто нибудь напишите мне об этом поподробнее

файл my.policy:

#start cut here
grant {
permission java.security.AllPermission;
};
#end cut here

Запускаешь appletviewer следующим образом:

appletviewer -J"-Djava.security.policy=my.policy" your_applet.html

Но это просмотр апплета, как заставить Java Plug-In действовать в соответствии с этим файлом политики безопаности я не знаю, попробуй вот так:

Панель управления -> Java -> Java -> Java Applet Runtime Settings -> View -> jre1.5.0 (или что там у тебя) -> и в Java Runtime Parameters добавь вот это (без кавычек) )"java.security.policy=my.policy", либо вот это "-Djava.security.policy=my.policy"- не знаю как в это случае — попробуй оба
Re[8]: applet + jdbc
От: passer  
Дата: 15.07.05 12:06
Оценка:
Здравствуйте, kostaky, Вы писали:
а прикольнись сработало...всем огромнейшее спосибо...
Re[6]: applet + jdbc
От: passer  
Дата: 15.07.05 13:02
Оценка:
Здравствуйте, kostaky, Вы писали:

извеняюсь я перерадовался от мысли что мучения кончилось. но нет...
в appletviewer-е апплет работает. а плагин перенастроить неудалось. еше какие варианты есть???...вы уверены что плагин найдет файл my.policy
или его надо скопировать в какой нить каталог
Re: applet + jdbc
От: Аноним  
Дата: 15.07.05 18:07
Оценка:
Здравствуйте, passer, Вы писали:

Апплет с базой соединять напрямую нехорошо. Апплет должен работать с сервлетом (один из вариантов), а сервлет — соединяться с базой.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.