Spring security Spring 3.0安全性-带身份验证的授权

Spring security Spring 3.0安全性-带身份验证的授权,spring-security,Spring Security,我是Spring的新手,我的要求是我不想用用户名和密码对用户进行身份验证。 用户正在验证某个其他应用程序,我的应用程序将获取以下详细信息的请求: 用户名 角色 我只想使用Spring安全性根据请求中的角色保护页面。 我曾考虑过编写UserDetailService,但这只是添加请求数据,Spring仍然要求提供身份验证信息。 然后,我想写下如下内容: 公共类用户登录{ /* @资源(name=“userDetailsService”) 私有用户详细信息服务用户详细信息服务; */ @资源(nam

我是Spring的新手,我的要求是我不想用用户名和密码对用户进行身份验证。 用户正在验证某个其他应用程序,我的应用程序将获取以下详细信息的请求:

  • 用户名
  • 角色
  • 我只想使用Spring安全性根据请求中的角色保护页面。 我曾考虑过编写UserDetailService,但这只是添加请求数据,Spring仍然要求提供身份验证信息。 然后,我想写下如下内容:

    公共类用户登录{
    /*
    @资源(name=“userDetailsService”)
    私有用户详细信息服务用户详细信息服务;
    */
    @资源(name=“authenticationManager”)
    私人AuthenticationManager AuthenticationManager;
    公共布尔登录(UserEntity用户){
    //UserDetails ud=userDetailsService.loadUserByUsername(用户名);
    收集权限=新建ArrayList();
    for(字符串角色:user.getAuthories()){
    权限。添加(新授权权限impl(角色));
    }
    UsernamePasswordAuthenticationToken=新的UsernamePasswordAuthenticationToken(user.getUsername(),user.getPassword(),authorities);
    试一试{
    Authentication auth=authenticationManager.authenticate(令牌);
    SecurityContext SecurityContext=新的SecurityContextImpl();
    //ThredLocal中的位置,供将来检索
    setContext(securityContext);
    SecurityContextHolder.getContext().setAuthentication(auth);
    }捕获(身份验证异常e){
    返回false;
    }
    返回true;
    }
    }
    

    我走的方向对吗。如果是这样的话,如何配置整个东西。。在SpringXML中。

    您处于所谓的预身份验证场景中,您将SpringSecurity配置为仅授权访问,而不是验证访问。看见这是一个完整的配置,您需要实现
    AbstractPreAuthenticatedProcessingFilter
    来grep您的身份验证方案的
    UserPrincipal
    ,以及您上面提到的自定义
    UserDetailsService