JSTL и аутентифицированные веб-сервисы - PullRequest
1 голос
/ 23 января 2009

Могу ли я получить доступ к аутентифицированному веб-сервису, используя JSTL? (Аутентификация на основе форм)

Если я не могу сделать это с помощью JSTL, есть ли другой способ сделать это из JSP?


Может быть, мне нужно дать немного больше информации. Я использую библиотеку ядра:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

и тег импорта, как в:

<c:import var="xml" url="http://my.service.com/api/xml"/>

Где http://my.service.com/api/xml - это веб-сервис, требующий аутентификации на основе форм - если я пытаюсь получить к нему доступ в браузере, мне предлагается ввести имя пользователя и пароль в веб-форме, а не во всплывающем окне.

извините, я не эксперт по веб-сервисам, как вы можете сказать, - скрестив пальцы для простого решения:)

Ответы [ 4 ]

0 голосов
/ 28 ноября 2010

Какова цель вызова веб-службы для аутентификации из JSTL по сравнению с выполнением прямо со страницы JSP / JSTL, например:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

<c:remove var="validUser" scope="session"/>
<c:if test="${empty param.user_name || empty param.password}">
 <c:redirect url="login.jsp"/>
</c:if> 

<sql:query var="users">
 SELECT 1 FROM users WHERE user_name = ? AND password = ?
 <sql:param value="${param.user_name}" />
 <sql:param value="${param.password}" />
</sql:query>
<c:if test="${users.rowCount == 0}">
 <c:redirect url="login.jsp"/>
</c:if>

Помните, что для реализации аутентификации по форме вы должны указать это в файле web.xml:

<login-config>
 <auth-method>FORM</auth-method>
 <form-login-config>
  <form-login-page>/main/login.jsp</form-login-page>
 </form-login-config>
</login-config>

Если вы хотите использовать какой-либо веб-сервис с использованием библиотек тегов, вы можете использовать JSP Библиотека тегов для веб-служб из сообщества Java.

0 голосов
/ 21 июня 2009

@ Брабстер, как сказал @duffymo, jstl не имеет ничего общего с аутентификацией веб-сервисов.

Если вам нужно избежать отображения страницы аутентификации внутри какой-либо JSP, возможно, вы можете обойтись специальным тегом, который будет иметь дело с аутентификацией. Как бы вы проходили аутентификацию на вашем веб-сервисе в простой консольной программе с методом main? Если вы знаете, как это сделать, легко интегрировать этот код в пользовательский тег.

0 голосов
/ 16 ноября 2009

Вот библиотека с открытым исходным кодом, http://spnego.sourceforge.net/protected_soap_service.html,, в которой есть пример подключения к веб-службе, защищенной с помощью встроенной аутентификации Windows.

Библиотека реализована в виде фильтра сервлетов.

0 голосов
/ 23 января 2009

JSTL == Стандартная библиотека тегов JSP? Если это так, я не вижу различий между JSTL и JSP.

Если вы добавляете токены в заголовки HTML или SOAP, вы предполагаете, что веб-служба знает, как их получить и как их использовать. При проверке подлинности на основе форм для имен параметров элементов формы используются j_username и j_password.

Я бы сказал, что безопасность должна быть сквозной проблемой. Фильтр или аспект должны иметь возможность извлекать эти значения из заголовков HTTP и выполнять аутентификацию для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...