понедельник, 26 ноября 2012 г.

Изменение логина для юзера в MS SQL Server

Мне это обычно бывает нужно после восстановления БД из бэкапа на другом сервере. В поднятой БД юзеры оказываются не привязанными ни к каким логинам. Если открыть свойства, видим, что поле "Имя входа" (логин) пустое.

Интересно, что предварительное создание на другом сервере таких же логинов, которые были на исходном, не помогает. Юзеры в поднимаемой БД сами к ним не привязываются.

Итак, хотим привязать некоторого уже существующего юзера в БД к некоторому существующему имени входа (логину) сервера. Делается просто:

EXEC sp_change_users_login 'Update_One',
  'YourUserName', 'YourLoginName';

Здесь 'Update_One' — константа, задающая нужный режим работы процедуры.

вторник, 16 октября 2012 г.

Eclipse: нет пункта меню Debug As → Debug on Server

Создаю новый веб-проект с использованием Maven. И вот кульминационный момент — первый запуск на отладку. Однако в меню "Debug As" соответствующей опции ("Debug on Server") не вижу...

В этом конкретном случае проблема решилась добавлением  <packaging>war</packaging> в pom.xml. Добавил, нажал "Maven → Update Project...", и после этого нужный пункт меню Debug появился.

Но подозреваю, что могут быть и другие причины такой штуки.

вторник, 9 октября 2012 г.

Java, URL Encoding и пробелы.

Часто встречается задача: закодировать в URL Encoding строку с пробелами. Стандартный метод делает это не так, как хотелось бы.
java.net.URLEncoder.encode кодирует строку в соответствии со стандартом HTML 4.01, который предписывает заменять символ пробела на "+", а не на "%20", как предписывает RFC3986.
(Источник)

В Spring'е есть простое решение проблемы — класс org.springframework.web.util.UriUtils с методами для кодирования урлов и параметров. Они работают правильно.

Замечу, что если надо обработать не полный урл, а только один из параметров, следует использовать метод UriUtils.encodeQueryParam. Поскольку UriUtils.encodeURI для строки "2012:10:05", например, возвращает "2012:/10:05", видимо, по-особому интерпретируя первое двоеточие.

понедельник, 20 августа 2012 г.

SSL: Chrome показывает красный перечёркнутый значок https даже после добавления сертификата в число доверенных

Разбирался с настройкой https.

Создал самоподписанный сертификат, ассоциировал его с узлом IIS.
При заходе на узел браузеры ожидаемо ругаются - так как сертификат неизвестен. Экспериментировал у себя на локальной машине, то есть узел был https://localhost/

Добавил сертификат в "Доверенные корневые центры сертификации" через оснастку "Сертификаты".
После этого IE открывает узел без проблем... А вот Google Chrome, хоть и не выдаёт запрос «"Продолжить всё равно", или "Назад к безопасности"», но всё же почему-то выделяет красным и зачёркивает значок https в адресной строке.

Если щёлкнуть слева от зачёркнутого https, то вываливается попап с дополнительной информацией:



В других браузерах не проверял.

Если вместо localhost вводить доменное имя компьютера во внутренней сети (изменив сертификат - он должен соответствовать урлу) - глюк всё равно не исчезает.

После некоторого гугления выяснилось, что проблема в неуниальности урла. Впрочем, сообщение Хрома в попапе с дополнительной информацией на это и намекает. То есть, когда на сайт будут заходить из интернета по внешнему адресу, такой штуки возникать не должно.

Как временное решение, чтобы зачёркнутый https не мозолил глаза - открывать узел по урлу с полным доменным уменем компьютера. Вводить вместо https://localhost/ что-то вроде
https://ws-workstation.company.local/
Похоже такой урл браузер считает уникальным и не ругается.

Подсмотрел фишку эту здесь.