Обновление Spring Cloud с Edgware (Spring boot 1.x) до Finchely / Greenwich (Spring boot 2.x) завершается неудачно после успешной аутентификации в шлюзе, но на веб-странице отображается 403 доступа, запрещенных.Я обновляю Spring Cloud и могу видеть некоторые изменения артефактов в последней версии Spring Cloud, и я обновляю их, но, к сожалению, после входа в приложение оно выдает ошибку 403 «Отказано в доступе». Эта ошибка не выдается, если я использую Edgware (Spring boot 1.x) версия.
При отладке кода, который я обнаружил после передачи параметров для класса «UsernamePasswordAuthenticationToken», он входит в классы springframwork и никогда не выходит из библиотек Spring.
@ Service (value = "AuthProvider") открытый финальный класс AuthProvider реализует AuthenticationProvider {private static final Logger logger = LoggerFactory.getLogger (AuthProvider.class);
@Autowired
UserAuthenticationService userAuthenticationService;
@Override
public Authentication authenticate(Authentication authentication)throws AuthenticationException
{
UsernamePasswordAuthenticationToken userToken = (UsernamePasswordAuthenticationToken) authentication;
List<String> roles = userAuthenticationService.authenticate(userToken.getName(),
userToken.getCredentials().toString());
if (roles.size() > 1 && roles.get(0).equals("FINE"))
{
Collection<GrantedAuthority> authorities = new ArrayList<>();
for (String role : roles.subList(1, roles.size()))
{
authorities.add(new SimpleGrantedAuthority(role));
}
return new UsernamePasswordAuthenticationToken(userToken.getName(), userToken.getCredentials(),
authorities); --> **at this point it enters into spring libraries and it never comes out of it.**
}
// User has an FINE in the first position of the list,there are no roles
// (size = 1)
else if (roles.size() == 1 && roles.get(0).equals("FINE"))
{
JSONObject json = new JSONObject();
try
{
json.put("errorCode", "FFF");
}
catch (JSONException e)
{
logger.warn("AuthProvider: Unexpected error", e);
}
throw new BadCredentialsException(json.toString());
}
// User has an JSON-message error in the first position of the list
else
{
throw new BadCredentialsException(roles.get(0));
}
}
}