Удалить access_token после выхода в Spring Security Oauth2

У меня проблема с выходом в spring security и oauth2

Мы защищаем услуги REST с помощью spring security OAuth2.Конечные точки токена и REST-api не имеют состояния и не нуждаются в сеансе.Мне нужен мой authserver только один раз проверка входа в систему, когда я вызываю службу выхода в клиенте rest, он показывает 200 ответ, но не удаляет авторизацию.при вводе имени пользователя и пароля agin тот же пользователь должен вести журнал.но не логаутинг.я также очистил контекст.

вот мой контроллер

`@Path("oauth2/logout")
 public class LogoutImpl implements LogoutSuccessHandler{ 
 private TokenStore tokenStore;
 @Autowired
 public LogoutImpl(TokenStore tokenStore) {
     this.tokenStore = tokenStore;
 }
 public void setTokenStore(TokenStore tokenStore) {
  this.tokenStore = tokenStore;
 }
 @Override
 public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse  response, Authentication authentication)
   throws IOException, ServletException {
     removeaccess(request);
    SecurityContextHolder.clearContext();
    response.getOutputStream().write("ntYou Have Logged Out successfully.".getBytes());}
public void removeaccess(HttpServletRequest req) {
  String tokens = req.getHeader("Authorization");
 String value = tokens.substring(tokens.indexOf(" ")).trim();
  OAuth2AccessToken token = tokenStore.readAccessToken(value.split(" ")[0]);
  tokenStore.removeAccessToken(token);
  System.out.println("ntAccess Token Removed Successfully!!!!!!!!");
 }}
`  

1 ответ

  1. Я вижу, что вы используете заголовок авторизации, и я предполагаю, что токен является JWT. Нет никакой концепции удаления или отзыва JWT. Он должен умереть сам по себе. Есть люди с представлениями, которые указали бы, что это является недостатком, когда сервер не может отозвать маркер и не может использоваться для корпоративных приложений.

    Когда тот же маркер используется клиентом в другом API, и сервер анализирует маркер, и если он находится в течение срока действия и не подвергается проверке, он будет проверен на TRUE.

    Однако ситуация была бы другой, и ответ был бы неуместным, если вы не используете JWT.