Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 没有用于AuthenticationManagerBuilder的bean_Spring_Unit Testing_Security_Junit_Spring Security Oauth2 - Fatal编程技术网

Spring 没有用于AuthenticationManagerBuilder的bean

Spring 没有用于AuthenticationManagerBuilder的bean,spring,unit-testing,security,junit,spring-security-oauth2,Spring,Unit Testing,Security,Junit,Spring Security Oauth2,我正在学习一些使用OAuth2进行基本身份验证的教程。整个过程都是可行的,但测试不可行。甚至有一些简单的类单元测试也不起作用。我有: No qualifying bean of type org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder'. 授权服务器配置: @Configuration @EnableAuthorizationServer pu

我正在学习一些使用OAuth2进行基本身份验证的教程。整个过程都是可行的,但测试不可行。甚至有一些简单的类单元测试也不起作用。我有:

No qualifying bean of type org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder'.
授权服务器配置:

@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
private AuthenticationManager authenticationManager;
@Autowired
public AuthorizationServerConfig(AuthenticationManager authenticationManager, PasswordEncoder passwordEncoder){
    this.authenticationManager = authenticationManager;
}

@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
    endpoints.authenticationManager(authenticationManager);
}

@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
    clients.inMemory().withClient("clientId")
            .authorizedGrantTypes("client_credentials", "password")
            .authorities("ROLE_CLIENT","ROLE_TRUSTED_CLIENT").scopes("read","write","trust")
            .resourceIds("oauth2-resource").accessTokenValiditySeconds(3600).secret("secret");
}

@Override
public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
    security.checkTokenAccess("isAuthenticated()");
}
}
用户详细信息实施:

public class CustomUserDetails implements UserDetails {
private static final long serialVersionUID = -3962786160780714576L;
private Collection<? extends GrantedAuthority> authorities;
private String password;
private String username;
private boolean enabled;

public CustomUserDetails(User user) {
    this.username = user.getUsername();
    this.password = user.getPassword();
    this.authorities = translate(user.getRoles());
    this.enabled = user.getEnabled();
}

private Collection<? extends GrantedAuthority> translate(List<Role> roles) {
    List<GrantedAuthority> authorities = new ArrayList<>();
    roles.stream().forEach(x -> authorities.add(new SimpleGrantedAuthority(x.getName())));
    return authorities;
}

@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
    return authorities;
}

@Override
public String getPassword() {
    return password;
}

@Override
public String getUsername() {
    return username;
}

@Override
public boolean isAccountNonExpired() {
    return true;
}

@Override
public boolean isAccountNonLocked() {
    return true;
}

@Override
public boolean isCredentialsNonExpired() {
    return true;
}

@Override
public boolean isEnabled() {
    return enabled;
}
}
主要类别:

@SpringBootApplication
public class SomeApplication {
    public static void main(String[] args) {
        SpringApplication.run(SomeApplication.class, args);
    }

@Autowired
public void authenticationManager(AuthenticationManagerBuilder builder, IUserDAO dao, PasswordEncoder encoder) throws Exception {
    builder.userDetailsService(userDetailsService(dao)).passwordEncoder(encoder);
}


private UserDetailsService userDetailsService(final IUserDAO dao) {
    return username -> new CustomUserDetails(dao.findByUsername(username));
}

}
application.yml

security:
  oauth2:
    resource:
      filter-order: 3
我正在查看,并试图禁用
test/resources/application.yml中的身份验证

security:
  basic:
    enabled: false
但这是行不通的。我找不到任何答案来纠正或嘲笑这一点。有人能帮我吗?有人知道怎么嘲笑它吗?或者在测试中得到这个bean

编辑: 测试使用
@DataJpaTest@RunWith(SpringRunner.class)
注释运行

security:
  basic:
    enabled: false