2017-07-12 31 views
1

私は春のセキュリティで保護された春ベースのアプリケーションを持っています。サービスはHttpInvokerを通じて公開されており、Swingベースのクライアントからこれらのサービスを使いたいと思っています。Spring Security + Spring Remoting + Swing

私はHttpInvokerProxyFactoryBeanを通じてSwingクライアントでこれらのリモートサービスを使用する方法を知っています。しかし、スイングベースのクライアントからの認証を処理する良い例は見つけられません。あなたは正しい方向に私を導くことができますか?

答えて

0

私はそれをやり遂げ、同じ問題を抱えている人を助けるためにここに回答を掲載しました。

スウィングクライアントで、HttpInvokerProxyFactoryBeanを次のように設定します。

また、クライアントには次のようなAuthenticationSimpleHttpInvokerRequestExecutor Beanが必要です。

@Bean 
public AuthenticationSimpleHttpInvokerRequestExecutor httpInvokerRequestExecutor() { 
    return new AuthenticationSimpleHttpInvokerRequestExecutor(); 
} 

また、ローカルSecurityContextでユーザー名とパスワードを次のように設定する必要があります。

ConfigurableApplicationContext context = SpringApplication.run(Application.class); 
    SecurityContextHolder.getContext().setAuthentication(new UsernamePasswordAuthenticationToken(<Username>, <Password>)); 

すべて設定されているので、次はService Beanを取得できます。

<ServiceInterface> service = context.getBean(<ServiceInterface>.class); 

また、サーバーのセキュリティ設定でHTTP基本認証を有効にする必要があります。そうしないと、StreamCorruptedExceptionが発生します。