大佬教程收集整理的这篇文章主要介绍了loadUserByUsername(String username)中的username参数为空-Spring Boot,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
您以JsON(内容类型)的形式发送username
和password
参数application/Json
,但必须发送URL编码的参数(内容类型application/x-www-
form-urlencoded
),请参阅Spring Security
Reference:
这是我的UserDetailservice
:
public class StockUserDetailservice implements UserDetailsservice {
@Autowired
private UserRepository userRepository;
private static final Logger logger = Logger.getLogger(StockUserDetailservice.class);
@Override
public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundException {
logger.debug("entering loadByUserName");
// MongoDatabase database = mongoClient.getDatabase("springsecurity");
User user = userRepository.findOne(userName);
logger.debug("this is teh user ibzect ="+user);
if (user == null) {
logger.info("----------------------------------------------user name is "+userName);
throw new UsernameNotFoundException("NAT FOUND");
}
return user;
}
}
但是username
争论总是这样来的null
。我在Stackoverflow上看到大量其他帖子,都遇到了同样的问题。他们中的一些人说这是因为它期望username
和password
作为http标头而不是JSON的一部分。
但是我认为这是不对的,因为Spring Boot的默认登录页面只有一种简单的形式,可以向POST
发送请求/login
。这是我在做什么。
我不明白这里的问题。
PS:我已经正确配置了username
和password
键名:
protected void configure(httpSecurity http) throws Exception {
http
.csrf().disable()
.authorizerequests()
.antMatchers("/signup**").permitAll()
.antMatchers("/login/**").permitAll()
.antMatchers("/logout/**").permitAll()
.and()
.authorizerequests()
.antMatchers("/admin/**").hasAuthority("ADMIN")
.and()
.formLogin()
.usernameParameter("username").
.passwordParameter("password");
}
以上是大佬教程为你收集整理的loadUserByUsername(String username)中的username参数为空-Spring Boot全部内容,希望文章能够帮你解决loadUserByUsername(String username)中的username参数为空-Spring Boot所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。