@ Override public void filter ( ContainerRequestContext requestContext , ContainerResponseContext responseContext ) throws IOException { String authToken = extractAuthTokenFromCookieList ( requestContext . getHeaders ( ) . getFirst ( "Cookie" ) ) ; if ( authToken != null && authToken . length ( ) != 0 ) { try { BasicToken token = new BasicToken ( authToken ) ; if ( token . isExpired ( ) ) { LOGGER . debug ( "ExpireDate : " + token . getExpirationDate ( ) . toString ( ) ) ; LOGGER . debug ( "Now: " + DateTime . now ( ) . toDate ( ) . toString ( ) ) ; responseContext . getHeaders ( ) . putSingle ( "Set-Cookie" , getTokenSentence ( null ) ) ; responseContext . setStatusInfo ( Response . Status . UNAUTHORIZED ) ; responseContext . setEntity ( "Token expired. Please login again." ) ; LOGGER . info ( "Token expired. Please login again." ) ; } else { token . setExpiration ( token . getMaxAge ( ) ) ; if ( ! logoutPath . equals ( requestContext . getUriInfo ( ) . getPath ( ) ) ) { String cookie = getTokenSentence ( token ) ; responseContext . getHeaders ( ) . putSingle ( "Set-Cookie" , cookie ) ; } } } catch ( Exception e ) { LOGGER . error ( "Token re-creation failed" , e . getMessage ( ) ) ; responseContext . setStatusInfo ( Response . Status . UNAUTHORIZED ) ; } } }
Checks the expiration date of token . Renews and puts at header of response .