¿Cómo actualizar el token de acceso usando http personalizado en angular 2?

Estoy usando autenticación basada en token en mi aplicación. Mi back-end se desarrolla utilizando un servicio tranquilo (spring). El código de back-end genera muy bien el token de acceso requerido y los tokens de actualización con líneas de tiempo, por lo que he anulado la clase http con lo siguiente:

export class customHttp extends Http {
   headers: Headers = new Headers({ 'Something': 'Something' });
    options1: RequestOptions = new RequestOptions({ headers: this.headers });
    private refreshTokenUrl = AppSettings.REFRESH_TOKEN_URL;
    constructor(backend: ConnectionBackend,
        defaultOptions: RequestOptions,private refresh:OauthTokenService) {
        super(backend, defaultOptions);
    }
    request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> {
    console.log("custom http ");
        return super.request(url, options)
            .catch((err) => {
                if (err.status === 401) {
                    console.log(" custome http 401 ");
                    //   refresh the token
                    this.refresh.refresh().subscribe((tokenObj)=>{
                              console.log("tokenobj ");
                    })
                 } else {
                    console.log("err " + err);
                }
            }); } } 

Me estoy atascando en la actualización del token en el método refresh () ya que recibo un error de dependencia cíclica, así que intenté usar el servicio de actualización en otro módulo pero no tuve suerte. Estoy usando el mismo enfoque que se menciona en esteManejo de tokens de actualización usando rxjs ¡Cualquier ayuda sería genial!

Respuestas a la pregunta(3)

Su respuesta a la pregunta