Spring Security 的StackOverflowError 错误
@Override
public User login(UserDto userDto) {
//调用ProviderManager的方用来认证
UsernamePasswordAuthenticationToken authenticationToken
= new UsernamePasswordAuthenticationToken(userDto.getUseraccount(),userDto.getPassword());
//应该下面这句出错了
Authentication authenticate = authenticationManager.authenticate(authenticationToken);
if (authenticate == null){
throw new RuntimeException("登录失败");
}
UserLoginDetails principal = (UserLoginDetails )authenticate.getPrincipal();
Long id = principal.getUser().getId();
String userAccount = principal.getUser().getUserAccount();
// // 如何成功jwt生成token
// Map map = new HashMap<>();
// JwTutils.createJWT("123",3000,map);
User user = new User();
user.setId(id);
user.setUserAccount(userAccount);
return user;
}
配置类
package com.su.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
//登录接口不需要鉴权,可以直接访问
.authorizeRequests()
.antMatchers("/user/login").anonymous()
.anyRequest().authenticated();
}
@Bean
public AuthenticationManager authenticationManager() throws Exception{
return super.authenticationManagerBean();
}
}
哪里错了如何解决?