Выполнять интегрированную проверку подлинности Windows, не запрашивая логин [дубликат]

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

38
задан bbodenmiller 21 July 2014 в 18:55
поделиться

4 ответа

Если вы добавили свой сайт в «Местная интрасеть» в

Chrome > Options > Under the Hood > Change Proxy Settings > Security (tab) > Local Intranet/Sites > Advanced.

Добавьте здесь URL-адрес сайта, и он будет работать.

Обновить для Новая версия Chrome

Chrome > Settings > Advanced > Open Proxy Settings > Security (tab) > Local Intranet > Sites (button) > Advanced.

35
ответ дан FrankerZ 19 August 2018 в 19:49
поделиться
  • 1
    Не работает для меня. – mjaggard 20 June 2012 в 11:16
  • 2
    Чтобы заставить это работать, после того, как я добавил сайт в зону локальной интрасети, мне пришлось посетить сайт в Internet Explorer и сохранить мои учетные данные. Затем Chrome работал так, как описано в этом ответе. – NightShovel 22 August 2013 в 00:20
  • 3
    Не работало и для меня. – Sam 23 September 2013 в 01:41
  • 4
    для меня тоже не работало. – War 21 October 2013 в 16:12
  • 5
    Работа для меня: D – Msmit1993 27 March 2014 в 12:50

Несмотря на то, что ответ moopasta работает, он, похоже, не дает подстановочных знаков, и есть другой (потенциально лучший) вариант. В проекте Chromium имеется некоторая документация по HTTP-аутентификации , которая является полезной, но неполной.

В частности, вариант, который я нашел лучше всего, - это белые списки сайтов, которые вы хотели бы разрешить Chrome передавать данные аутентификации вы можете сделать это:

  • Запуск Chrome с помощью переключателя командной строки auth-server-whitelist. например --auth-server-whitelist="*example.com,*foobar.com,*baz". Спад к этому подходу заключается в том, что открытие ссылок из других программ приведет к запуску Chrome без переключения командной строки.
  • Установка, включение и настройка AuthServerWhitelist / «Белый список сервера аутентификации» Групповая политика или локальная групповая политика. Это похоже на самый стабильный вариант, но требует больше работы для настройки. Вы можете установить это локально, не нужно, чтобы это удаленное развертывание.

Те, кто хочет настроить это для предприятия, могут, вероятно, следовать указаниям по использованию Групповой политики или консоль администратора , чтобы настроить политику AuthServerWhitelist . Те, кто хочет настроить это для одной машины, могут также следовать инструкциям Group Policy :

  1. Загрузите и распакуйте последние шаблоны политики в Chrome
  2. Start > Run > gpedit.msc
  3. Перейдите к Local Computer Policy > Computer Configuration > Administrative Templates
  4. Щелкните правой кнопкой мыши Administrative Templates и выберите Add/Remove Templates
  5. . Добавьте windows\adm\en-US\chrome.adm в диалоговом окне
  6. В Computer Configuration > Administrative Templates > Classic Administrative Templates > Google > Google Chrome > Policies for HTTP Authentication включить и настроить Authentication server whitelist
  7. Перезапустить Chrome и перейти к chrome://policy, чтобы просмотреть активные политики
12
ответ дан bbodenmiller 19 August 2018 в 19:49
поделиться
  • 1
    В этой статье описано, как добавить значения в реестр, если вы не хотите использовать GP или командные переключатели. В основном под HKLM\Software\Policies\Google\Chrome\AuthServerWhitelist добавьте AuthServerWhitelist(string):"*example.com,*foobar.com,*baz". Раздражающе, в моем случае, мои парни инфраструктуры добавили это, используя GP с 1 единственным сервером, который вызвал каждый другой сайт интрасети, чтобы спросить меня. Удаление этой клавиши устранило проблему – Rhumborl 12 January 2015 в 11:04
  • 2
    +1, так как inetcpl.cpl Параметры безопасности могут быть недоступны / управляться администратором домена в среде AD. (проблема, которая у меня была - и ваш ответ спас мой день.) Спасибо, – Rikki 8 May 2017 в 05:39

Chrome изменил свое меню, так как этот вопрос был задан. Это решение было протестировано с Chrome 47.0.2526.73 до 63.0.3239.132.

Если вы используете Chrome прямо сейчас, вы можете проверить свою версию с помощью: chrome: // version

  1. Перейти к: chrome: // настройки

  1. Прокрутите вниз до нижней части страницы и нажмите «Показать дополнительные настройки ...», чтобы показать дополнительные настройки.

  1. В разделе «Сеть» нажмите «Изменить настройки прокси-сервера ...».

  1. Нажмите вкладку «Безопасность», затем выберите значок «Местная интрасеть» и нажмите кнопку «Сайты».

  1. Нажмите на кнопке «Дополнительно».

  1. Вставьте локальный адрес вашей внутренней сети и нажмите кнопку «Добавить».

  1. Закрыть все окна.

Вот и все.

21
ответ дан Maxime 19 August 2018 в 19:49
поделиться
  • 1
    Обратите внимание, что это диалоговое окно IE , а не Chrome. Chrome использует те же настройки, что и IE – Panagiotis Kanavos 27 May 2016 в 09:46
  • 2
    Да, Chrome использует одну и ту же информацию в Internet Explorer. – Maxime 5 December 2016 в 17:40
  • 3
    Этот ответ только спас меня, спасибо! – gyozo kudor 10 January 2018 в 11:52
  • 4
    Этот диалог - это просто окна «Свойства обозревателя» и «Свойства обозревателя». диалоговое окно, на самом деле это не часть хрома – Mick 18 January 2018 в 07:53
  • 5
    Не исправил это для меня, но повысил для действительно четких инструкций – mlhDev 26 January 2018 в 20:25

В дополнение к настройке записи реестра для AuthServerWhitelist вы также должны установить AuthSchemes: «ntlm, negotiate» (или просто «ntlm» в зависимости от ситуации). Используя приведенные выше шаблоны, политика для этого будет «Поддерживаемые схемы аутентификации»

1
ответ дан Shahar Tamari 19 August 2018 в 19:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: