Файл cookie сеанса на уровне домена в нескольких доменах - PullRequest
4 голосов
/ 15 февраля 2012

Если вы хотите, чтобы ColdFusion создавал ваш сеансовый файл cookie в качестве файла cookie уровня домена, например, .bar.com, а не foo.bar.com, тогда вы можете настроить это в jrun-web.xml: -

<session-config>    
   <cookie-config>
          <active>true</active>
          <cookie-domain>.bar.com</cookie-domain>
   </cookie-config>
  <persistence-config>
    <active>false</active>
  </persistence-config>
</session-config>

Однако это настройка для всего экземпляра, поэтому, если вы хотите запустить два приложения в этом экземпляре или одно приложение с несколькими доменами верхнего уровня, то у одного из них будут сеансы, которые не работают.

Есть ли способ добавить несколько доменов в jrun-web.xml и выбрать подходящий?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 03 июля 2013

Мне удалось найти DTD для jrun-web.xml (ссылка @ верхняя точка указывает на несуществующий Macromedia URL).

Это указывает, что может быть только один <cookie-domain> узел в XML.Я также проверил список доменных имен, например:

<cookie-domain>.domainA.com,.domainB.com</cookie-domain>

И это тоже не работает.

Не абсолютный ответ, но я подозреваю, что это возможно не возможно (!), и это, конечно, невозможно через jrun-web.xml (который, я думаю, отвечает хотя бы на один из ваших вопросов).

0 голосов
/ 15 февраля 2012

Я думаю, вы могли бы использовать <CFHEADER> для установки файлов cookie домена вместо <CFCOOKIE>?

0 голосов
/ 15 февраля 2012
<cfapplication
   setdomaincookies=yes
   .....>

Это установит ваши файлы cookie cfid и cftoken как файлы cookie домена (* .bar.com), а не значения, специфичные для хоста (foo.bar.com).

CFApplication (см. Раздел о setDomainCookies)

0 голосов
/ 15 февраля 2012

Я думаю, что если вы называете свое приложение переменной cgi.server_name, и каждый из ваших сайтов использует один и тот же файл application.cfc или application.cfm, то переменные сеанса и cookie будут правильно распределены для каждого отдельного сайта.Например:

<cfapplication name="#cgi.server_name#" sessionmanagement="YES" clientmanagement="YES" sessiontimeout="#CreateTimeSpan(1,0,0,0)#" applicationtimeout="#CreateTimeSpan(1,0,0,0)#"  clientstorage="COOKIE" setclientcookies="YES">
...