我在SpringSecurity中自定义了一个认证方法,前一段时间还好使,这次使用就不好使了,登录就显示登录失败;看了一下感觉是自定义的认证方法没有被调用,问问各位大佬,如何让它被调用呢?
下面是我的自定义认证方法:
@Service
public class ManagerDetialsService implements UserDetailsService {
// Dubbo的服务消费者对象,从zk订阅服务信息,创建代理对象。
@Reference
private TbManagerServiceAPI tbManagerServiceAPI;
@Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
// 查询用户对象
TbManager tbManager = tbManagerServiceAPI.getTbManagerByusername(s);
System.out.println(tbManager);
if (tbManager == null){ // 用户不存在
throw new UsernameNotFoundException("无该用户!");
}
return new User(
tbManager.getUsername(),
tbManager.getPassword(),
AuthorityUtils.createAuthorityList("no authority")
);
}
}
下面是我的配置方法:
@Configuration
public class ManageSecurityConfiguration extends WebSecurityConfigurerAdapter {
/**
* Security配置
* @param http
* @throws Exception
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
// login相关配置
http.formLogin()
.loginProcessingUrl("/login")
.loginPage("/")
.successForwardUrl("/loginSuccess"); // post请求 登录成功后的跳转。
// 验证相关配置
http.authorizeRequests()
.antMatchers("/", "/login", "/css/*", "/js/**")
.permitAll()
.anyRequest().authenticated();
// 禁用对frame相关的权限管理。即使页面使用了iframe或framest等标签,同样可以获取其中的数据进行操作。
http.headers()
.frameOptions().disable();
// 关闭csrf
http.csrf().disable();
}
// 增加PasswordEncoder对象
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
}
有碰到这种问题的吗?
。。。我倒是能帮你看看,私信我把