Java 找不到预验证身份验证令牌的身份验证提供程序

Java 找不到预验证身份验证令牌的身份验证提供程序,java,spring,model-view-controller,Java,Spring,Model View Controller,我对整个Spring的安全性还比较陌生,我正在尝试建立一个使用预认证的网站。我已经学习了一些例子和教程,我认为进展顺利。但我有一件事没做 当我浏览.jsp页面时,一切正常。我可以访问“公共”页面,当我尝试访问“私有”页面时,我会得到“拒绝访问”(我还没有完成对私有页面的筛选) 但如果我在导航时检查日志,每次访问页面时都会出现相同的错误: org.springframework.security.authentication.ProviderNotFoundException:未找到org.spr

我对整个Spring的安全性还比较陌生,我正在尝试建立一个使用预认证的网站。我已经学习了一些例子和教程,我认为进展顺利。但我有一件事没做

当我浏览.jsp页面时,一切正常。我可以访问“公共”页面,当我尝试访问“私有”页面时,我会得到“拒绝访问”(我还没有完成对私有页面的筛选)

但如果我在导航时检查日志,每次访问页面时都会出现相同的错误:

org.springframework.security.authentication.ProviderNotFoundException:未找到org.springframework.security.web.authentication.preauthentication.PreAuthenticatedAuthenticationToken的AuthenticationProvider

问题是,我有一个供应商,或者至少我认为是这样

SecurityConfig.java:

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Bean(name = "myAuthenticationManager")
    @Override
    public AuthenticationManager authenticationManagerBean() throws Exception
    {
        return super.authenticationManagerBean();
    }


    @Bean
    public AccessDecisionManager accessDecisionManager()
    {
        List<AccessDecisionVoter<? extends Object>> decisionVoters
                = Arrays.asList(new RoleVoter());

        return new AffirmativeBased(decisionVoters);
    }

    @Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception
    {
        PreAuthenticatedAuthenticationProvider provider = new PreAuthenticatedAuthenticationProvider();

        DlaUserDetailsService userDetailsService = new DlaUserDetailsService();
        provider.setPreAuthenticatedUserDetailsService(userDetailsService);
        auth.authenticationProvider(provider);
    }

    @Override
    public void configure(HttpSecurity http) throws Exception
    {
        DlaSpringMvcFilter filter = new DlaSpringMvcFilter();
        AuthenticationManager authenticationManager = this.authenticationManager();
        filter.setAuthenticationManager(authenticationManager);

        http.addFilter(filter).authorizeRequests()
                .antMatchers("/private/**").hasRole("ADMIN")
                .antMatchers("/public/**").permitAll();

        http.csrf().disable();
    }
}
@配置
@启用Web安全性
@EnableGlobalMethodSecurity(securedEnabled=true,Prespenabled=true)
公共类SecurityConfig扩展了WebSecurity配置适配器{
@Bean(name=“myAuthenticationManager”)
@凌驾
公共AuthenticationManager authenticationManagerBean()引发异常
{
返回super.authenticationManagerBean();
}
@豆子
公共访问决策管理器访问决策管理器()
{
列表