| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > записать cookies |
| Автор: vthm3 2.9.2015, 14:22 | ||
| хорошо.. а как записать cookies? у меня веб джава програма, которая находится на локалхост, отправляет запрос на другой севрер.. и в результате сервер присылает свои cookies.. я получаю эти cookie и записываю так:
в хроме, включаю инструмент для разработчиков, и там вижу, что параметры куки установлены.. имя - параметр - localhost - Session НО.. когда я устанавливаю cookie.getDomain() куки не устанавыливаются вообще, если я это удаляю (cookie.getDomain()), то куки устанавливаются с доменом localhost.. как мне записать эти куки с тем доменом который вовращает куки? |
| Автор: Samotnik 3.9.2015, 10:51 |
| vthm3, давай нормальный кусок кода. Как ты получаешь куки и как ты хочешь их дальше использовать? |
| Автор: vthm3 3.9.2015, 13:35 | ||||||
Samotnik, у меня есть два домена.. sharepoint.server.com и app.server.com где-то по ходу работы программы app.server.com я делаю невидимую ntlm аудентификацию на сервере sharepoint.server.com.. sharepoint.server.com возвращает мне куки, которые я хочу записать в память браузера.. как мне это сделать? я их могу записать, но только с параметром демен app.server.com.. и в этом случае они не будут видимы серверу sharepoint.server.com как их записать в память браузера, чтобы sharepoint.server.com не просил последующую авторизация пользователя, а использовал данных куки из браузера?? то есть, как мне их записать в память браузера с доменом sharepoint.server.com, при этом работаючи со страницы, которая находится на домене app.server.com?? Добавлено @ 13:41
и в этом случае оно не устанавливает куки, потому что cookie.getDomain() = sharepoint.server.com, а страница работает с домена app.server.com НО, если я со строчки удалаю +"; domain="+cookie.getDomain(), и ничего не пише в домен, то оно устанавливает куки, но только с доменом app.server.com А мне нужно установить куки с доменом sharepoint.server.com КАК МНЕ ЭТО СДЕЛАТЬ??????????????????????????????? |
| Автор: Samotnik 4.9.2015, 00:41 | ||||
| Так ну теперь хоть стало ясно что к чему Да, действительно, cookie.getDomain() вернет домен sharepoint.server.com и это логично. Можно сделать "хак", вместо:
написать в лоб:
Я помню в таких случаях действует политика веб безопастности, из раздела "кросс доменные запросы", которые запрещены в принципе. Обычно, это действительно можно обойти через iframe, так что подход верный. Попробуй этот вариант, хотя он вроде как очевиден, уже пробовал? еще нужно проверить что cookie.getPath() возвращает? |
| Автор: vthm3 4.9.2015, 09:53 |
| cookie.getPath = / Ваш вариант пробовал, в этом случае, куки не устанавливаются вообще... больше без вариантов? |
| Автор: Samotnik 4.9.2015, 10:27 | ||
| vthm3, ожидаемо. вообще вариант с: .server.com должен работать. Но разрешит ли полиси напрямую сделать. Попробуй, много времени не займёт. Что бы выглядело красиво, а не хардкодом:
|
| Автор: vthm3 4.9.2015, 10:44 | ||||||||
| а если бы у меня было совершенно два разных сервера, домена.. тогда не возможно было бы это сделать? например.. server.com and server.net как в этом случае? Добавлено @ 10:49
да, но тогда эти куки не сможет читать sharepoint.server.com.. а в том то и дело, что нужно мне записать куки так, что бы они были видимы для sharepoint.server.com и тогда когда я вызываю ссылку на sharepoint.server.com, из app.server.com (java application), sharepoint будет видеть свои же куки (которые он установил), и не показывает мне окно авторизации (так как по куках понимает что пользователь уже авторизирован) |
| Автор: vthm3 4.9.2015, 10:56 |
| ну а если я работаю из app.server.com, и получаю куки из sharepoint.server.com, то могу ли я установить куки sharepoint server на домен app.server.com с доменом .server.com и будут ли они тогда видимы share point servery из главной программы app.server.com?? |
| Автор: Samotnik 4.9.2015, 10:56 |
почему? По идее должен мочь. Вот пример с винграда: |
| Автор: vthm3 4.9.2015, 11:04 |
| хорошо, нужно попробовать, а то у меня сейчас главная программа на локалхосте.. а sharepoint на сервере) спасибо) |
| Автор: Samotnik 4.9.2015, 11:19 | ||
| vthm3, у меня была такая же задача. Был главный проект site.xxx и я делал под проект sub.site.xxx После одобрения главного сервера я на нём выставлял куку .site.xxx и мой поддомен был доволен. Единственная проблема была с IE9, который не хотел работать с кроссдоменными запросами (и ему всё равно что я шлю запросы на свой же домен, а не посторонний) и для IE9 я создавал iframe. Но в 10 и 11 эта проблема ушла и костыль был удалён год назад. Да, ещё в томкате, если /ты хочешь шарить сессию/ server.xml нужно написать:
|
| Автор: vthm3 4.9.2015, 11:39 | ||||
да, но у вас был главный домен и поддомен.. а у меня два поддомена.. sharepoint.server.com и portal.server.com и получается что мне надо установить куки sharepoint сервера с главным доменом ".server.com" или это то же самое по принципу получается? |
| Автор: Samotnik 8.9.2015, 19:44 |
| ну что? есть новости? Я думаю так, что если поддомен утсановит куки для главного домена, то всё заработает. |
| Автор: vthm3 11.9.2015, 16:31 | ||
нет, еще нету новостей.. на сервере пока не пробовал, коллега в отпуске.. а у меня доступа к серверу нет) |
| Автор: vthm3 15.9.2015, 13:46 | ||
Samotnik, установил програму на сервер.. возвращает куки из сервера c доменом .server.com, они установились.... (когда запускал програму на локалохосте, то куки с доменом .server.com не записывались) но йомайо... оно все равно не работает... и просит авторизация когда я обращаюсь к нему опять..... как мне быть??????????? и еще момент... хотя домены и одинаковые, но один у меня - app.server.com, а второй - sharepoint.server.com:80 что мне делать с этим 80.. как его записать, запомнить в куки.. или чего с ним делать???? и еще такой нюанс... Захожу на sp.server.com.. получаю в окне sharepoint и все что мне там нужно.. делаю авторизацию, получаю куки.. все хорошо работает) куки вижу в инструменти разработчиков в хроме, например... теперь, в том же инструменте, удалаю все куки, которые вернул мне sp.server.com, обновляю страничку, и оно все равно работает, и все равно я авторизирован остаюсь) если нажимаю кнопку "выйти", появляется окно, в котором пишет "для того чтобы вийте из пользователя, нужно также закрыть браузер, только тогда вы окончательно выйдете из системы" что это за фигня? как это все работает? |
| Автор: Samotnik 16.9.2015, 23:14 |
| vthm3, Есть еще такое понятие как сессия. Порт 80 - порт по умолчанию, ничего с ним не делай. Может всё же сессия тоже шарится между поддоменами? |
| Автор: vthm3 17.9.2015, 10:13 | ||
а как мне отслеживать эти сессии, которые установлены с sp.server.com..?? и как сделать чтобы эти сессии были видимы из app.server.com (ну согласно задания выше)... я не знаю что именно происходит с sp.server.com (я интересуюсь как ето может работать)... если посмотреть на информацию в инструменте для разработчиков в хроме, то там где "session storage" i "local storage" все пусто (никакие параметры не записаны). Есть только параметры, которые записаны в cookies. и еще.. вот захожу я на sp.server.com, и появляется окно авторизации (логин и пароль)... а можно ли отключить эту авторизацию.. чтобы все пользователи могли получить доступ к sharepoint.. a? и какие еще есть варианты авторизироваться на sharepoint сайте из java программы автоматически? выше я делал невидимую ntlm авторизацию, получал куки, и по идее оно должно было работать.. а какие принципиально другие есть варианты чтобы можно было авторизироватся на sharepoint сервере чтобы получить доступ, и чтобы пользователю не приходилось вводить логи и пароль вручную. Если есть возможность как отключить эту авторизацию в sharepoint, было бы это идеальное решение... кто знает еще какие варианты?? |