0

クライアント側には、次のSpring Beanがあります。

<bean id="partneriLogicImpl" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
    <property name="serviceUrl" value="http://localhost:8080/hr.spi.service/hessian/lcspi/lczaj/partneri" />
    <property name="serviceInterface" value="hr.spi.logic.lcspi.lczaj.PartneriLogic" />
</bean>

そして、次のように Hessian Web サービスを呼び出しています。

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContextHessian.xml");
PartneriLogic partneriLogic = (PartneriLogic) context.getBean("partneriLogicImpl");
List<?> partnerList = partneriLogic.dohvatiSveZaExport();

これは、サーバー側で Spring Security を有効にするまで問題なく機能します。その後、予想されるエラーが発生します - 「サーバーが HTTP 応答コードを返しました: 403」。

では、クライアント側でユーザー名とパスワードを構成するにはどうすればよいですか?

4

2 に答える 2

2

API Docによると、 org.springframework.remoting.caucho.HessianProxyFactoryBean は、デフォルトで HTTP 基本認証用の 2 つのセッター メソッドを提供します。

  • setUsername

    このファクトリがリモート サービスにアクセスするために使用するユーザー名を設定します。デフォルトはなしです。

    ユーザー名は、HTTP 基本認証を介して Hessian によって送信されます。

  • パスワードを設定してください

    このファクトリがリモート サービスにアクセスするために使用するパスワードを設定します。デフォルトはなしです。

    パスワードは、HTTP 基本認証を介して Hessian によって送信されます。

クライアント側でユーザー名とパスワードを構成するにはどうすればよいですか?

applicationContext.xml で、次のように HessianProxyFactoryBean を定義します。

<bean id="partneriLogicImpl" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
  <property name="serviceUrl" value="http://localhost:8080/hr.spi.service/hessian/lcspi/lczaj/partneri" />
  <property name="serviceInterface" value="hr.spi.logic.lcspi.lczaj.PartneriLogic" />
  <property name="username" value="${username}" />
  <property name="password" value="${password}" />
</bean>
于 2012-08-28T03:38:10.907 に答える