Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Возможно войти в систему с помощью Аутентификации HTTP путем установки HTTP-заголовка "Авторизации", со значением этого набора заголовка к строке "основной username:password", но с "username:password" частью строковой Основы 64 закодированных.
http://frontier.userland.com/stories/storyReader$2159
Немного исследования нашло, что GreaseMonkey имеет функцию, встроенную в него, куда можно отправить, ДОБИРАЮТСЯ / POST запрашивает к серверу под названием GM_xmlhttpRequest
http://diveintogreasemonkey.org/api/gm_xmlhttprequest.html
Так соединяя все это (и также заставляя этот код JavaScript преобразовать строки в base64 я получаю следующее
http://www.webtoolkit.info/javascript-base64.html
var loggedInText = document.getElementById('metanav').firstChild.firstChild.innerHTML;
if (loggedInText != "logged in as jklp") {
var username = 'jklp';
var password = 'jklpPass';
var base64string = Base64.encode(username + ":" + password);
GM_xmlhttpRequest({
method: 'GET',
url: 'http://foo.com/trac/login',
headers: {
'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/0.3',
'Accept': 'application/atom+xml,application/xml,text/xml',
'Authorization':'Basic ' + base64string,
}
});
}
Таким образом, когда я теперь посещаю сайт, он пересекает DOM и если я не зарегистрирован, он автоволшебно регистрирует меня в.
Почему Вы не используете Firefox (я предполагаю, что Вы используете Firefox) помнить Ваши учетные данные с помощью Менеджера паролей?
Я нашел эту ссылку: Аутентификация HTTP с HTML-формами. Похож на Вас, может использовать JavaScript, чтобы сделать Аутентификацию HTTP. Я не думаю, что Вы можете сделать, чтобы Механик прервал, когда Вы сначала перешли к URL все же. Вам, возможно, придется установить своего рода стартовую точку, которую можно использовать, чтобы иметь механика, автоматически перенаправляют + вход в систему. Например, у Вас может быть локальная страница, которая берет целевой URL в строке запроса, имейте Механика, автоматически делают аутентифицирование + перенаправление. Единственная проблема состоит в том, что необходимо будет перенести закладки сайта со страницей запуска для закладок, которые Вы используете в качестве точек входа.
Информация об аутентификации HTTP отправляется по каждому запросу, не только для входа в систему. Браузер будет кэшировать данные для входа для сессии после входа в первый раз. Так, Вы ничего действительно не сохраняете путем попытки проверить, зарегистрированы ли Вы уже.
Вы могли также забыть о механике в целом и просто дать свой вход в систему в на URL как так:
http://username:password@host/
Конечно, сохранение этого в закладке может быть угрозой безопасности, но не больше так, чем сохранение Вашего пароля в браузере.
« http: // username: пароль @ host / " не работает на IE, Firefox работает нормально.