Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как подружить веб-сервис клиент и JAAS? / 6 сообщений из 6, страница 1 из 1
27.07.2012, 15:26:52
    #37895568
krab
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подружить веб-сервис клиент и JAAS?
Здравствуйте есть wsdl файл, к которому я хочу получить доступ с клиента, но на сервере стоит JAAS и мне с сервера присылается вместо xml сообщения, html (страничка с ошибкой авторизации).

Код web.xml:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
  <security-constraint>
        <display-name>TTK</display-name>
        <web-resource-collection>
            <web-resource-name>TTK</web-resource-name>
            <url-pattern>/*</url-pattern>
            <url-pattern>/pages/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>

        <auth-constraint>
            <role-name>AuthUserRole</role-name>
        </auth-constraint>

        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    
    <security-constraint>
        <display-name>TTK</display-name>
        <web-resource-collection>
            <web-resource-name>Allow this</web-resource-name>
            <url-pattern>/javax.faces.resource/*</url-pattern>
        </web-resource-collection>

        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

 <login-config>
       <auth-method>FORM</auth-method>
       <form-login-config>
       <form-login-page>/login.xhtml</form-login-page>
       <form-error-page>/failedlogin.xhtml</form-error-page>
       </form-login-config>
</login-config>

    <security-role>
        <role-name>AuthUserRole</role-name>
    </security-role>
    <security-role>
      <role-name>normal</role-name>
   </security-role>



jboss-web.xml:

Код: xml
1.
2.
3.
<jboss-web>
    <security-domain>java:/jaas/ad_ldap_security_domain</security-domain>
</jboss-web>



Сам сервис на сервере:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
@WebService
public interface Test {

	@WebMethod public String getHello();
}

@WebService
public class TestImpl implements Test{

	@Override
	public String getHello() {
		return "Hello";
	}

}



Клиент:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class TestImplPortClient
{
  public static void main(String [] args){


    TestImplService testImplService = new TestImplService();
    Test test = testImplService.getMyauImplPort();
 

    System.out.println(test.getHello());
  }
}



В итоге вылетает ошибка:
Код: java
1.
 com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/html;charset=UTF-8 Supported ones are: [text/xml]



То есть приходит в ответ вот эта страничка с ошибкой failedlogin.xhtml

Как решить эту проблему? Кто сталкивался?
Заранее спасибо.
...
Рейтинг: 0 / 0
27.07.2012, 15:34:08
    #37895589
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подружить веб-сервис клиент и JAAS?
странная, конечно у вас там система
<auth-method>FORM</auth-method>
значит что клиент (браузер) в HTTP POST с логином и паролем. Сервер создаёт сессию и использует jsessionid для идентификации клиента.
Для вэб сервисов так никто не делает. Но проблема решаема.
Нужно послать HTTP POST на сервер и вычитать куку jsessionid.
Потом её использовать на клиенте web service.
...
Рейтинг: 0 / 0
27.07.2012, 15:52:29
    #37895644
krab
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подружить веб-сервис клиент и JAAS?
Blazkowicz,

Спасибо, а как куку использовать на веб сервисе? Есть ли у Вас полезные ссылки по этой теме, чтоб почитать?

Заранее спасибо.
...
Рейтинг: 0 / 0
27.07.2012, 16:01:44
    #37895668
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подружить веб-сервис клиент и JAAS?
...
Рейтинг: 0 / 0
27.07.2012, 19:27:20
    #37896038
krab
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подружить веб-сервис клиент и JAAS?
А вот это работает только для BASIC авторизации?

Код: java
1.
2.
3.
4.
5.
6.
    HelloService helloService = new HelloService();
    Hello hello = helloService.getHelloPort();
    BindingProvider bp = (BindingProvider)hello;
    bp.getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
    bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "name");
    bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "pass");



А нельзя например в web.xml указать какие-то исключения, чтоб безопасность разрешала доступ к сервисам? К примеру скопировать все wsdl файлы в отдельный каталог и разрешить доступ к нему...

Или же еще вариант например в самом сервисе на сервере вызывать метод для авторизации?

Спасибо.
...
Рейтинг: 0 / 0
27.07.2012, 19:51:07
    #37896059
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подружить веб-сервис клиент и JAAS?
krabА вот это работает только для BASIC авторизации?
Нет, не только. NTLM, SPNEGO, Digest
http://docs.oracle.com/javase/6/docs/technotes/guides/net/http-auth.html

krabА нельзя например в web.xml указать какие-то исключения, чтоб безопасность разрешала доступ к сервисам? К примеру скопировать все wsdl файлы в отдельный каталог и разрешить доступ к нему...

Можно. Только я не уверен что всё средствами webxml
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как подружить веб-сервис клиент и JAAS? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]