2

マシンに Web サービスを作成しました。そのURLは

http://localhost:8080/aaa/test?wsdl

1つの機能を有効にしたい。ユーザーがブラウザに URL を入力するとすぐに、資格情報を要求する必要があります。Web サービスで実行できますか。

はいの場合、誰かがそれを達成する方法を案内できますか。

ありがとう。

4

1 に答える 1

3

すでにSpringを使用している場合は、SpringSecurityを使用して特定のURLパターンに基本認証を簡単に適用できます。applicationContext.xml、次を追加するだけです。

<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.3.xsd">

<!-- HTTP basic authentication in Spring Security -->
<http>
    <intercept-url pattern="/*wsdl?" access="ROLE_USER" />
    <http-basic />
</http>

<authentication-manager>
   <authentication-provider>
       <user-service>
       <user name="someUser" password="somePassword" authorities="ROLE_USER" />
       </user-service>
   </authentication-provider>
</authentication-manager>

</beans:beans>

MkyongのSpringSecurityHTTP基本認証の例から抜粋した例。

データベース内のユーザーを検索する場合は、別の認証プロバイダーを使用する必要があります。Spring Securityのリファレンスには、標準のSpringSecurityユーザーデータテーブルdata-source-refをクエリするかどうかが記載されています。すでに独自の構造を持っている場合は、代わりに、ユーザーを自分で検索できる構造を使用することをお勧めします。user-service-ref

<authentication-manager>
  <authentication-provider user-service-ref='myUserDetailsService'/>
</authentication-manager>

<beans:bean id="myUserDetailsService"
    class="mypackage.MyUserDetailsService">
  <beans:property name="dataSource" ref="dataSource"/>
</beans:bean>

そして、 JdbcDaoImplmypackage.MyUserDetailsServiceを拡張して実装するコード。UserDetailsService

于 2013-01-18T10:33:33.817 に答える