Java 找不到预验证身份验证令牌的身份验证提供程序
我对整个Spring的安全性还比较陌生,我正在尝试建立一个使用预认证的网站。我已经学习了一些例子和教程,我认为进展顺利。但我有一件事没做 当我浏览.jsp页面时,一切正常。我可以访问“公共”页面,当我尝试访问“私有”页面时,我会得到“拒绝访问”(我还没有完成对私有页面的筛选) 但如果我在导航时检查日志,每次访问页面时都会出现相同的错误: org.springframework.security.authentication.ProviderNotFoundException:未找到org.springframework.security.web.authentication.preauthentication.PreAuthenticatedAuthenticationToken的AuthenticationProvider 问题是,我有一个供应商,或者至少我认为是这样 SecurityConfig.java:Java 找不到预验证身份验证令牌的身份验证提供程序,java,spring,model-view-controller,Java,Spring,Model View Controller,我对整个Spring的安全性还比较陌生,我正在尝试建立一个使用预认证的网站。我已经学习了一些例子和教程,我认为进展顺利。但我有一件事没做 当我浏览.jsp页面时,一切正常。我可以访问“公共”页面,当我尝试访问“私有”页面时,我会得到“拒绝访问”(我还没有完成对私有页面的筛选) 但如果我在导航时检查日志,每次访问页面时都会出现相同的错误: org.springframework.security.authentication.ProviderNotFoundException:未找到org.spr
@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();
}
@豆子
公共访问决策管理器访问决策管理器()
{
列表