VirtualIreland.ru - Виртуальная Ирландия
Вернуться   VirtualIreland.ru - Виртуальная Ирландия > Живем в Ирландии > IT и Связь

IT и Связь Обсуждение "айтишных" вопросов и средств связи

Ответ
 
Опции темы Опции просмотра
Старый 25.02.2011, 20:52   #1
Заслуженный Участник
 
Аватар для Arte
 
Откуда: Planet Earth
Сообщений: 3,287
Благодарности: 1,368 в 554 сообщениях Поиск благодарностей Arte
Отправить сообщение для  Arte с помощью ICQ
По умолчанию Java - java.net.Authenticator кэширует похоже логин и пароль...

Есть у меня приблуда которая забирает по HTTPS файлики небольшие и кое что с ними делает. Раньше всё было ок - пока она тянула всё из одного эккаунта, сейчас нужно обращаться на один и тот же сервер, со слегка другим УРЛ и что характерно с другой парой login / password несколько раз подряд и каждый раз логин/пароль меняется.

Короче эта сука (см название) тупо не запускает PasswordAuthentication() внутри себя повторно и как следствие пароль старый, а урл новый и... HTTP 400 - иди гуляй Федя.

Может кто знает как с этой хренью бороться?

Вот куски кода:

PHP код:

public class MyAuthenticator extends Authenticator {

        
// Get the username from the user...
        
String username "";

        
// Get the password from the user...
        
String password "";

    public 
MyAuthenticator(String loginString passwd){
        
// Get the username from the user...
        
username login;
        
// Get the password from the user...
        
password passwd;

        
System.out.println("LOG: "+login+" PASS:"+passwd);
    }


    
// This method is called when a password-protected URL is accessed
    
@Override
    
protected PasswordAuthentication getPasswordAuthentication() {
        
// Get information about the request
        
String promptString getRequestingPrompt();
        
String hostname getRequestingHost();
        
InetAddress ipaddr getRequestingSite();
        
int port getRequestingPort();

            
System.out.println("Requesting Host  : " getRequestingHost());
            
System.out.println("Requesting Port  : " getRequestingPort());
            
System.out.println("Requesting Prompt : " getRequestingPrompt());
            
System.out.println("Requesting Protocol: " getRequestingProtocol());
            
System.out.println("Requesting Scheme : " getRequestingScheme());
            
System.out.println("Requesting Site  : " getRequestingSite());

        
// Return the information
        
return new PasswordAuthentication(usernamepassword.toCharArray());
    }


}


Ну а где запуск идёт там всё понятно:

        
MyAuthenticator MA = new MyAuthenticator(loginpasswd);
        
Authenticator.setDefault(MA);

.....
            
URL url = new URL("https://....skipped....PaymentSubmissionDetailReport.csv");

            
// Read all the text returned by the server
            
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
__________________
_______________________
Синсерелли Ваш. Артемий
Arte вне форума   Ответить с цитированием

Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок
Старый 25.02.2011, 23:04   #2
Заслуженный Участник
 
Аватар для Arte
 
Откуда: Planet Earth
Сообщений: 3,287
Благодарности: 1,368 в 554 сообщениях Поиск благодарностей Arte
Отправить сообщение для  Arte с помощью ICQ
По умолчанию Re: Java - java.net.Authenticator кэширует похоже логин и пароль...

Короче это старый и сильно известный в узких кругах баг... Пилять.

Фикс такой:


PHP код:
import sun.net.www.protocol.http.AuthCacheValue;
import sun.net.www.protocol.http.AuthCacheImpl;
.....
AuthCacheValue.setAuthCache(new AuthCacheImpl()); 
Правда он "немного" варнинг даёт
sun.net.www.protocol.http.AuthCacheImpl is Sun proprietary API and may be removed in a future release


А вообще известен с аж 2007 года.
http://bugs.sun.com/bugdatabase/view...bug_id=6626700
__________________
_______________________
Синсерелли Ваш. Артемий
Arte вне форума   Ответить с цитированием
Старый 02.03.2011, 20:22   #3
Активный Участник
 
Аватар для IgnatZ
 
Откуда: Minsk -> Rathmines
Сообщений: 121
Благодарности: 18 в 15 сообщениях Поиск благодарностей IgnatZ
По умолчанию Re: Java - java.net.Authenticator кэширует похоже логин и пароль...

2007 год - это свежак, по меркам жабы.
__________________
With regards, Ignat Zapolsky.
IgnatZ вне форума   Ответить с цитированием
Старый 03.03.2011, 14:25   #4
Заслуженный Участник
 
Аватар для Arte
 
Откуда: Planet Earth
Сообщений: 3,287
Благодарности: 1,368 в 554 сообщениях Поиск благодарностей Arte
Отправить сообщение для  Arte с помощью ICQ
По умолчанию Re: Java - java.net.Authenticator кэширует похоже логин и пароль...

Цитата:
Сообщение от IgnatZ Посмотреть сообщение
2007 год - это свежак, по меркам жабы.
А ворнинги уже сейчас выдаёт. Падла
__________________
_______________________
Синсерелли Ваш. Артемий
Arte вне форума   Ответить с цитированием
Ответ



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать на сообщения
Вы не можете добавлять вложения
Вы не можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщ.
Java 4-ever nexus Само приползло 0 04.07.2010 14:55
.NET vs Java Benjamin IT и Связь 2 26.06.2010 20:03
Java IDE? Yapi IT и Связь 19 30.04.2009 14:30
java vs c++ ;)) KaraNagai IT и Связь 39 01.12.2005 22:12
ОС Java ДВ Lammo IT и Связь 74 29.07.2005 15:49


Часовой пояс GMT, времени сейчас: 00:43.


vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd., Русификация: zCarot, Vovan & Co
©2003-2025 VirtualIreland.ru - Виртуальная Ирландия