java - 使用需要用户名和密码的 Web 服务通过 Spring Security 对用户进行身份验证

标签 java web-services spring-security

目前我正在使用 Spring Security 编写一个 Web 应用程序。我们有一个网络服务,可以通过用户名和密码对用户进行身份验证。

网络服务:
String[] login(String username, String password);

如何配置 Spring Security 以将提供的用户名和密码传递给 Web 服务?

我写了一个只接收用户名的 UserDetailsS​​ervice


我认为问题出在您的 xml 上。你关闭自动配置了吗?您的类是否扩展了 AbstractUserDetailsAuthenticationProvider?

最佳答案

扩展 org.acegisecurity.providers.dao.AbstractUserDetailsAuthenticationProvider

/**
 * @author rodrigoap
 * 
 */
public class WebServiceUserDetailsAuthenticationProvider extends
    AbstractUserDetailsAuthenticationProvider {

  @Override
  protected UserDetails retrieveUser(String username,
        UsernamePasswordAuthenticationToken authentication)
        throws AuthenticationException {
     //Improve this line:
    String password = authentication.getCredentials().toString();
    // Invoke your webservice here
    GrantedAuthority[] grantedAuth = loginWebService.login(username, password);
    // create UserDetails. Warning: User is deprecated!
    UserDetails userDetails = new User(username, password, grantedAuth);
    return userDetails;
  }

}

关于java - 使用需要用户名和密码的 Web 服务通过 Spring Security 对用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1171103/

相关文章:

java - JAX-WS 使用@SchemaValidation 在 WebLogic 中验证模式

java - Spring-Security 3/Spring MVC 和可怕的@Secured/RequestMapping

authentication - 通过grails应用程序中的spring security来按时间限制访问

java - Nashorn:对于使用 lambda 公开的函数,JavaScript 表达式求值抛出类转换异常

java - 使用 Jackson Exception 构建 RESTFul Web 服务

java - 间歇性奇怪的 tomcat 问题部署 war 文件

java - 为给定场景投票选出最佳协议(protocol)

apache - 如何在启动 Amazon EC2 实例时自动启动 Web 服务?

java - 如何在Spring中只允许用户修改自身的REST调用?

java - 维护第三方Java库依赖项的补丁