2012-06-20 1 views
1

Мой сайт работает на .Net, и я использую SDL Tridion 2009. Когда пользователь входит в систему, я вижу, что переменная REMOTE_USER правильно хранится в группа taf: server: variables в хранилище претензий (с использованием сценария .net).Получение данных об окружающей среде REMOTE_USER от taf: server: переменные в Java

В моем картридже (java) я пытаюсь извлечь это значение, но я вижу, что при печати всего в хранилище претензий это значение пустое.

мой Java-код выглядит следующим образом:

Map serverParameters = (Map)claimStore.get(WebClaims.SERVER_VARIABLES); 

for (Object key: serverParameters.keySet()) { 
    log.debug("Key : " + key.toString() + " Value : " + serverParameters.get(key)); 
} 

Update:

Моя конфигурация картридж содержит следующую inputclaim:

<InputClaims> 
    <ClaimDefinition Uri="taf:server:variables" /> 
</InputClaims> 

Это, к сожалению, doens't помощь, я ve также попробовал taf: server: variables: remoteuser/remote_user/* без успеха.

Когда я проверяю журнал, я вижу ключ REMOTE_USER, но значение пустое.

Мне было интересно, видел ли кто-либо еще этот сценарий и знает решение.

+0

Временная проблема? Выполняется ли ваш картридж до того, как значение установлено? –

+0

Если они существуют, значение должно быть установлено (насколько я могу определить, по крайней мере). Но действительно, чтобы быть уверенным: конфигурация вашего картриджа указывает, что вы зависите от переменной REMOTE_USER? –

+0

Спасибо, Chips, я пробовал это, но подозреваю, что у меня неверный URL-адрес. Я обновил свой вопрос. – johnwinter

ответ

3

Совершенно верно, что REMOTE_USER является пустым, если запрос выполняется без аутентификации (т. Е. Разрешен анонимный доступ).

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

P.S. В этом случае раздел заявки ввода не имеет значения, поскольку серверные переменные не задаются картриджем, а HTTP-модулем. Заявки на вход и выход используются только для определения зависимостей между (и, следовательно, порядком) картриджей.