标题java.net.HttpRetryException: cannot retry due to server authentication, in streaming mode
java.net.HttpRetryException: cannot retry due to server authentication, in streaming modeat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1692) ~[na:1.8.0_171] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) ~[na:1.8.0_171] at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) ~[na:1.8.0_171] at org.springframework.http.client.SimpleClientHttpResponse.getRawStatusCode
翻译:httpretryexception:由于服务器身份验证,在流模式下无法重试
在测试的时候登录的时候抛出的异常居然说我没有权限,怎么可能?访问的登录的路径我都已经放行了呀?
通过debug发现每次都是申请令牌的时候调用exchange()方法抛出的然后我又检查了下参数发现参数也并没有出错?不能淡定了,开始疯狂的百度但是并没有什么具体解决办法.然后继续各种断点,终于查出问题所在了,原来在这里,登录的时候需要校验密码,调用了user微服务的feign接口,而调用这个接口没有权限
但是他怎么又不能调用了呢??点进去一看哎
居然把校验用户的方法加上了权限控制把@PreAuthorize注解注释掉就好了
总结:报这个错误会很坑,他不会具体指出错误的信息,就是抛一个没有权限的异常,抛了这个异常首先检查下参数,然后保证整个请求下来所有的路径都是放行状态应该就不会有事了