下面是使用form方式发送请求的正常状态:
<!-- 生产环境版本,优化了尺寸和速度 -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://cdn.bootcss.com/qs/6.5.2/qs.min.js"></script>
<script src="https://cdn.bootcss.com/Base64/1.0.1/base64.min.js"></script>
<script src="/js/common.js"></script>
<script>
new Vue({
el: '#app',
data: function () {
return {
username: 'admin',
password: 'a11111',
mobile: '15388888888',
show: false,
sendSmsCodeBtnStatus: false
}
},
computed: {
rememberVal: function () {
return this.remember
}
},
methods: {
onSubmit: function (e) {
this.$vp.post('/authentication/form', Qs.stringify({
username: this.username,
password: this.password
}), {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': `Basic ${btoa('immoc:immocsecret')}`
}
}).then(function (response) {
console.log(`token 授权登录完成->`, response)
}).catch(function (err) {
alert(`请求短信验证码出错${JSON.stringify(err.response)}`)
})
},
如果我使用默认的json格式发送请求数据,就会出错:
{
"content": "Cannot pass null or empty values to constructor"
}
下面是堆栈:
2018-09-12 15:28:05.682 INFO 11519 --- [nio-8080-exec-5] a.c.a.CustomAuthenctiationFailureHandler : 登录失败
2018-09-12 15:30:49.420 INFO 11519 --- [nio-8080-exec-1] c.j.s.w.c.DemoUserDetailsService : 准备登陆的用户 admin
2018-09-12 15:30:49.572 INFO 11519 --- [nio-8080-exec-1] a.c.a.CustomAuthenticationSuccessHandler : 身份认证(登录 Token)成功
2018-09-12 15:33:46.849 INFO 11519 --- [nio-8080-exec-2] c.j.s.w.c.DemoUserDetailsService : 准备登陆的用户
2018-09-12 15:33:46.928 ERROR 11519 --- [nio-8080-exec-2] w.a.UsernamePasswordAuthenticationFilter : An internal error occurred while trying to authenticate the user.
org.springframework.security.authentication.InternalAuthenticationServiceException: Cannot pass null or empty values to constructor
at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:126) ~[spring-security-core-4.2.7.RELEASE.jar:4.2.7.RELEASE]
登录后可查看更多问答,登录/注册
Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全
了解课程