我在我的机器上创建了一个 Web 服务。它的网址是
http://localhost:8080/aaa/test?wsdl
我想为其启用一项功能。一旦用户在浏览器中输入 url,它应该要求提供凭据。它可以在Web服务中完成。
如果是,有人可以指导如何实现它。
谢谢。
我在我的机器上创建了一个 Web 服务。它的网址是
http://localhost:8080/aaa/test?wsdl
我想为其启用一项功能。一旦用户在浏览器中输入 url,它应该要求提供凭据。它可以在Web服务中完成。
如果是,有人可以指导如何实现它。
谢谢。
如果您已经在使用 Spring,则可以使用 Spring Security 轻松地将基本身份验证应用于特定的 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 的Spring Security HTTP Basic Authentication Example。
如果您想在数据库中查找用户,则需要使用不同的身份验证提供程序。如果您想查询标准 Spring Security 用户数据表,Spring Security 参考中提到。如果您已经有了自己的结构,您可能有兴趣改用它,您可以自己在其中查找用户。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>
mypackage.MyUserDetailsService
以及扩展JdbcDaoImpl和实现的代码UserDetailsService
。