java 401_java – Spring返回401而不是200状态

好.首先是第一件事

问题在这里

public SignedJWT authenticate(final String email,final String password){

try {

System.out.println("test => "+email+" : "+password);

Authentication authentication = authenticationManager

.authenticate(new UsernamePasswordAuthenticationToken(email,password));

SecurityContextHolder.getContext().setAuthentication(authentication);

if (authentication.getPrincipal() != null) {

return tokenManager.createNewToken((PrincipalUser) authentication.getPrincipal());

}

} catch (AuthenticationException authException) {

authException.printStackTrace();

LOGGER.debug("Authentication Failed for user:\"" + email + ".\" Reason " + authException.getClass());

}

System.out.println("return nulll");

return null;

}

如果运行测试用例,则会抛出以下错误

org.springframework.security.authentication.BadCredentialsException: Bad credentials

at org.springframework.security.authentication.dao.DaoAuthenticationProvider.additionalAuthenticationChecks(DaoAuthenticationProvider.java:98)

at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:166)

at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)

at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:199)

at org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter$AuthenticationManagerDelegator.authenticate(WebSecurityConfigurerAdapter.java:504)

at com.github.springjwt.security.jwt.service.AuthenticationServiceUsernamePassword.authenticate(AuthenticationServiceUsernamePassword.java:30)

at com.github.springjwt.web.api.controller.AuthController.authenticate(AuthController.java:31)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImp

这意味着您的测试用例的用户名和密码与UserRepository类用户详细信息不匹配

在您的UserRepository类中

您需要设置正确的哈希密码及其设置为null的盐值.

当您调用authenticate.authenticate时,它会在内部获取密码和哈希值,并将其与传递的值进行匹配.

如果值不匹配则抛出错误凭据错误

P.S:我在本地运行代码后得出了这个结论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值