2017-02-22 6 views
0

Использование JMeter 3.1 r1770033, у меня есть две проблемы с хранением cookie для конкретной компании через наш Single Sign-On. (SSO)Проблема с JMeter с SSO и Cookies

Я прочитал много постов блога и вопросы на этом сайте, касающиеся куки, но никто не появляется, чтобы решить мой конкретный вопрос «HC3CookieHandler: Не хранить недопустимый печенье:»

Я считаю, что это происходит из-за к реализации того, как компания хочет, чтобы файл cookie был отформатирован.

Cookie: companyAuthorizedEnvironment = assignedTokenId

Я могу быть успешным с помощью интерфейса командной строки с помощью завиток, но не с помощью JMeter.

curl --request POST --header "X-OpenAM-Username:username" --header "X-OpenAM-Password:password” --header "Content-Type:application/json" --data "{}" https://sso.company.com/access/authenticate/ 

Response 

{"tokenId": "AQIC5w_TEXT_REMOVED_NTcy*", "successUrl": "/openam/console" } 

Ниже приведено краткое описание моего простого теста Логин/выход из системы с пояснениями и краткое изложение 2 в результате проблем.

Любая помощь очень ценится!



ПЛАН ИСПЫТАНИЯ

менеджер HTTP Cache

Clear cache each iteration? = enabled 
Use Cache-Control = disabled 
Max # of elements = 5000 

HTTP Cookie Manager

Я перепробовал все возможные комбинации реализации/политики, без успеха ,

Clear cookies each iteration = enabled 
Implementation = HC3CookieHandler 
Cookie Policy = default 

НАСТРОЙКА НИТИ ГРУППА = ССО АУТЕНТИФИКАЦИЯ

«Этот процесс позволяет удаленному клиенту для проверки подлинности на SSO, используя действительные учетные данные. После успешной аутентификации, маркер аутентификации представлен пользователю, который затем используется для доступа к защищенным приложениям ».

HTTP Header Mgr 

    X-OpenAM-Username: ${username} 
    X-OpenAM-Password: ${password} 
    Content-Type: application/json 

HTTP Request 

    Server Name = sso.stage.company.com 
    Protocol = ${__P(protocol,https)} 
    Method = POST 
    Path = /access/authenticate/ 

    REGEX 

     Ref Name = newTokenId 
     Reg Expression = "tokenId":(.+?)\, 
     Template = $1$ 
     Match No. = 1 
     Default = null 

    BEANSHELL ASSERTION 

     ${__setProperty(tokenId,${newTokenId})} 

Teardown НИТИ ГРУППА = ССО ВЫХОД

"Этот процесс позволяет удаленному клиенту завершить активный сеанс с SSO путем выхода из системы"

HTTP Header Mgr 

    Cookie: companyauthstage=${tokenId} 
    Content-Type: application/json 

HTTP Request 

    Server Name = sso.stage.company.com 
    Protocol = ${__P(protocol,https)} 
    Method = POST 
    Path = /access/logout/ 


НОМЕР 1 - ВХОД

В моем журнале следов появляется следующее предупреждение.

WARN - jmeter.protocol.http.control.HC3CookieHandler: Not storing invalid cookie: <amlbcookie=01; Domain=sso.stage.company.com.; Path=/> for URL https://sso.stage.company.com/access/authenticate/ (Illegal domain attribute "sso.stage.company.com.". Domain of origin: "sso.stage.company.com") 

Не знаете, почему это незаконно. Мне интересно, если какой-то период (.) Добавляется в домен. Я проверял, что у меня нет лишнего периода.

ВЫПУСК 2 - LOGOUT

Response code: 401 
Response message: Unauthorized 

Я подозреваю, что это несанкционированная, потому что "Cookie: companyauthstage = $ {tokenId}" заголовок не хранится, но я не уверен на 100%.

ответ

0

Вы уже получили описание вам нужно:

Illegal domain attribute "sso.stage.company.com.". Domain of origin: "sso.stage.company.com" 

Это «незаконным», поскольку она имеет точку в конце, поэтому он не совпадает с доменом, он пришел с. Это лежит в области безопасности, поэтому все клиентское программное обеспечение должно воспринимать это очень серьезно, и поэтому менеджер файлов cookie делает это.

Так что вам лучше пойти, чтобы ваши разработчики стали хедз-ап, это ошибка.

1

Если вы полностью уверены, что печенье прекрасно вы можете заставить JMeter отключить куки проверки и сохранить их, как они, добавив следующую строку в user.properties файл (как правило, живет в «БИН» папку вашего JMeter)

CookieManager.check.cookies=false 

Перезарядка JMeter будет необходимо для того, чтобы подобрать недвижимость.

Вы можете достичь того же, передавая свойство как через -J аргумент командной строки:

jmeter -JCookieManager.check.cookies=false -n -t .... 

Ссылки:

Смежные вопросы