class OauthLogoutHandler implements LogoutHandler {
	private final OAuth2AuthorizationService oAuth2AuthorizationService;
	private final SecurityProperties securityProperties;
	@Override
	public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {<FILL_FUNCTION_BODY>}
}

		Assert.notNull(oAuth2AuthorizationService, "oAuth2AuthorizationService must be set");
		String token = request.getParameter("token");
		if (StrUtil.isEmpty(token)) {
			token = AuthUtils.extractToken(request);
		}
		if(StrUtil.isNotEmpty(token)){
			OAuth2Authorization existingAccessToken = oAuth2AuthorizationService.findByToken(token, OAuth2TokenType.ACCESS_TOKEN);
			if (existingAccessToken != null) {
				if (securityProperties.getAuth().getUnifiedLogout()) {
					UsernameHolder.setContext(existingAccessToken.getPrincipalName());
				}
				oAuth2AuthorizationService.remove(existingAccessToken);
				log.info("remove existingAccessToken!", existingAccessToken.getAccessToken().getToken().getTokenType());
			}
		}
	
<no_super_class>