2014-12-06 9 views
0

У меня есть веб-приложение, которое требует ввода username and password authentication.Продолжающиеся сессии с использованием JSESSIONID

Что я делаю, аутентификации пользователя только из стенда Java app, который будет делать это, сделав Http запрос на сервер с помощью username и password. Тогда я бы получил JSESSIONID cookie от ответа сервера.

Теперь я хочу использовать этот JSESSIONID, чтобы продолжить сеанс в браузере, чтобы позволить user перемещаться по страницам моего веб-приложения, которое будет открыто моим автономным java-приложением, которое я использую для аутентификации.

Возможно ли это? Или есть другой способ сделать это.

ответ

0

Cookie можно изменить, используя указанные ниже методы.

 Cookie cookie = new Cookie("JSESSIONID", NEWSESSIONID); 
     response.addCookie(cookie); 

В приложении вы можете отправить JSESSIONID в качестве параметра при открытии браузера в первый раз и сбросить куки с помощью метода выше либо в фильтре или сервлет. Это приведет к сбросу вашего файла cookie на стороне клиента после отправки ответа. Следующий запрос в палатах вы сможете получить доступ к сеансу, созданному ранее.

+0

Я не отправляю запросы, когда я обращаюсь к своему веб-приложению, просто просматривая его. –

+0

Поскольку вы просматриваете приложение без каких-либо подробностей, как мы можем поддерживать сеанс?. После аутентификации вы открываете браузер из автономного приложения? –

+0

Да, это то, что я хочу сделать. –

0

Это возможно, но это не так просто.

Поскольку веб-приложения не используют сеансы, то вы ищете решение Single Sign On (SSO), в котором используется «Identity Provider» (IdM), который аутентифицирует пользователей для одного или нескольких «Сервисов» Провайдеры "(SP). В этом случае ваш сервлет - это IdM, а ваше веб-приложение - SP.

В зависимости от развертывания, следующие сторонние, с открытым исходным кодом SSO библиотеки, которые вы можете быть в состоянии использовать:

  • Kerberos
  • PicketLink (для JBOSS)
  • OpenAM (для Tomcat)

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

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