Я написал API выхода из системы в REST, но при его вызове, возвращая 500 и URL-адрес изменяется на / login? Logout, и в ответ он показывает страницу index.html
Я пытался вернуть страницу входа или простую строку илипопробовал с пустым методом, но не повезло.обойти, мы делаем в угловых
мой API
@CrossOrigin(maxAge=4800, allowCredentials="false")
@RequestMapping(value="/logout", method=RequestMethod.GET)
public String logout(HttpServletRequest req, HttpServletResponse res){
logger.info("loging out the user and invalidating the session");
try{
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if(auth != null)
new SecurityContextLogoutHandler().logout(req, res, auth);
logger.info("----user log out sucessfully----");
}catch(Exception e){
logger.error("Error while logout the user: "+e.getMessage());
}
return "redirect:/login?logout";
}
Я пытался return "/"
ИЛИ return "success"
Угловой код
logOut() {
this.logoutUser().subscribe(res=>{
console.log("logout sucessfully")
});
this.router.navigate(['login']); //redirect to login
}
Код ошибки:
SEVERE: Servlet.service () для сервлета [Reminder365API] в контексте с путем [/ Reminder365] вызвал исключение com.fasterxml.jackson.databind.JsonMappingException: нет содержимого для сопоставления из-зав конец ввода в [Source: org.apache.catalina.connector.CoyoteInputStream@6b20e469;строка: 1, столбец: 0] в com.fasterxml.jackson.databind.JsonMappingException.from (JsonMappingException.java:261) в com.fasterxml.jackson.databind.ObjectMapper._initForReading (ObjectMapper.java:3829) в com.fasterxml.jackson.databind.ObjectMapper..web.authentication.logout.LogoutFilter.doFilter (LogoutFilter.java:116)
показывает ошибку в JWTLoginFilter.attemptAuthentication (JWTLoginFilter.java:44)
1024* кодовая форма JWTLoginFilter.java
public Authentication attemptAuthentication(HttpServletRequest req, HttpServletResponse res)
throws AuthenticationException, IOException, ServletException {
logger.info("attemptAuthentication(req=" + req + ", res=" + res + ") - start - entering attemptAuthentication");
AccountCredentials creds = new ObjectMapper().readValue(req.getInputStream(), AccountCredentials.class); //line 44
return getAuthenticationManager().authenticate(new UsernamePasswordAuthenticationToken(creds.getUsername(),
creds.getPassword(), Collections.emptyList()));
}
Я ожидаю, что API лOgout и перенаправить на вход в систему без каких-либо ошибок и в угловом мы просто называем это.