我正在我的宁静 Web 服务中实现 Spring Security。我正在使用 http-basic 身份验证,现在当我尝试访问我的服务时,会出现一个 Windows 安全对话框,询问用户名和密码,现在我想通过 http 标头传递用户名和密码,这样我就不需要仅在安全对话中输入详细信息。我的安全配置文件看起来像 -
<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.1.xsd">
<http auto-config="true" create-session="stateless">
<intercept-url pattern="/**" access="ROLE_USER" />
<http-basic />
</http>
<authentication-manager>
<authentication-provider>
<!-- <user-service>
<user name="yoman" password="123456" authorities="ROLE_USER" />
</user-service> -->
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="
select username,password, enabled
from users where username=?"
authorities-by-username-query="
select u.username, ur.authority from users u, user_roles ur
where u.user_id = ur.user_id and u.username =? "
/>
</authentication-provider>
</authentication-manager>
</beans:beans>
我正在尝试使用这样的授权标头传递用户名和密码-
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.set("Authorization", "Basic "
+ "username:password");
但是每次我访问该服务时,它仍然要求我输入用户名和密码。
我做错了什么,这里的正确方法是什么。我将非常感谢提供的任何帮助。