diff --git a/includes/openid-connect-generic-client-wrapper.php b/includes/openid-connect-generic-client-wrapper.php index c8e5555d..18356fa0 100644 --- a/includes/openid-connect-generic-client-wrapper.php +++ b/includes/openid-connect-generic-client-wrapper.php @@ -542,13 +542,17 @@ public function authentication_request_callback() { } // Login the found / created user. + $start_time = microtime( true ); $this->login_user( $user, $token_response, $id_token_claim, $user_claim, $subject_identity ); + $end_time = microtime( true ); + // Log our success. + $this->logger->log( "Successful login for: {$user->user_login} ({$user->ID})", 'login-success', $end_time - $start_time ); // Allow plugins / themes to take action once a user is logged in. + $start_time = microtime( true ); do_action( 'openid-connect-generic-user-logged-in', $user ); - - // Log our success. - $this->logger->log( "Successful login for: {$user->user_login} ({$user->ID})", 'login-success' ); + $end_time = microtime( true ); + $this->logger->log( 'openid-connect-generic-user-logged-in', 'do_action', $end_time - $start_time ); // Default redirect to the homepage. $redirect_url = home_url(); @@ -957,6 +961,7 @@ private function get_email_from_claim( $user_claim, $error_on_missing_key = fals * @return \WP_Error | \WP_User */ public function create_new_user( $subject_identity, $user_claim ) { + $start_time = microtime( true ); $user_claim = apply_filters( 'openid-connect-generic-alter-user-claim', $user_claim ); // Default username & email to the subject identity. @@ -1054,6 +1059,8 @@ public function create_new_user( $subject_identity, $user_claim ) { if ( ! empty( $uid ) ) { $user = $this->update_existing_user( $uid, $subject_identity ); do_action( 'openid-connect-generic-update-user-using-current-claim', $user, $user_claim ); + $end_time = microtime( true ); + $this->logger->log( "Existing user updated: {$user->user_login} ($uid)", __METHOD__, $end_time - $start_time ); return $user; } } @@ -1104,7 +1111,8 @@ public function create_new_user( $subject_identity, $user_claim ) { add_user_meta( $user->ID, 'openid-connect-generic-subject-identity', (string) $subject_identity, true ); // Log the results. - $this->logger->log( "New user created: {$user->user_login} ($uid)", 'success' ); + $end_time = microtime( true ); + $this->logger->log( "New user created: {$user->user_login} ($uid)", __METHOD__, $end_time - $start_time ); // Allow plugins / themes to take action on new user creation. do_action( 'openid-connect-generic-user-create', $user, $user_claim ); diff --git a/includes/openid-connect-generic-client.php b/includes/openid-connect-generic-client.php index b5989b2b..70250b03 100644 --- a/includes/openid-connect-generic-client.php +++ b/includes/openid-connect-generic-client.php @@ -231,8 +231,10 @@ public function request_authentication_token( $code ) { $request = apply_filters( 'openid-connect-generic-alter-request', $request, 'get-authentication-token' ); // Call the server and ask for a token. - $this->logger->log( $this->endpoint_token, 'request_authentication_token' ); - $response = wp_remote_post( $this->endpoint_token, $request ); + $start_time = microtime( true ); + $response = wp_remote_post( $this->endpoint_token, $request ); + $end_time = microtime( true ); + $this->logger->log( $this->endpoint_token, 'request_authentication_token', $end_time - $start_time ); if ( is_wp_error( $response ) ) { $response->add( 'request_authentication_token', __( 'Request for authentication token failed.', 'daggerhart-openid-connect-generic' ) ); @@ -262,8 +264,10 @@ public function request_new_tokens( $refresh_token ) { $request = apply_filters( 'openid-connect-generic-alter-request', $request, 'refresh-token' ); // Call the server and ask for new tokens. - $this->logger->log( $this->endpoint_token, 'request_new_tokens' ); - $response = wp_remote_post( $this->endpoint_token, $request ); + $start_time = microtime( true ); + $response = wp_remote_post( $this->endpoint_token, $request ); + $end_time = microtime( true ); + $this->logger->log( $this->endpoint_token, 'request_new_tokens', $end_time - $start_time ); if ( is_wp_error( $response ) ) { $response->add( 'refresh_token', __( 'Refresh token failed.', 'daggerhart-openid-connect-generic' ) ); @@ -336,8 +340,10 @@ public function request_userinfo( $access_token ) { $request['headers']['Host'] = $host; // Attempt the request including the access token in the query string for backwards compatibility. - $this->logger->log( $this->endpoint_userinfo, 'request_userinfo' ); - $response = wp_remote_post( $this->endpoint_userinfo, $request ); + $start_time = microtime( true ); + $response = wp_remote_post( $this->endpoint_userinfo, $request ); + $end_time = microtime( true ); + $this->logger->log( $this->endpoint_userinfo, 'request_userinfo', $end_time - $start_time ); if ( is_wp_error( $response ) ) { $response->add( 'request_userinfo', __( 'Request for userinfo failed.', 'daggerhart-openid-connect-generic' ) ); diff --git a/includes/openid-connect-generic-option-logger.php b/includes/openid-connect-generic-option-logger.php index f5ae8562..09b2189a 100644 --- a/includes/openid-connect-generic-option-logger.php +++ b/includes/openid-connect-generic-option-logger.php @@ -118,15 +118,16 @@ public function log_hook( $arg1 = null ) { /** * Save an array of data to the logs. * - * @param mixed $data The data to be logged. - * @param mixed $type The type of log message. + * @param mixed $data The log message data. + * @param mixed $type The log message type. + * @param float|null $processing_time Optional event processing time. * * @return bool */ - public function log( $data, $type = null ) { + public function log( $data, $type = null, $processing_time = null ) { if ( boolval( $this->logging_enabled ) ) { $logs = $this->get_logs(); - $logs[] = $this->make_message( $data, $type ); + $logs[] = $this->make_message( $data, $type, $processing_time ); $logs = $this->upkeep_logs( $logs ); return $this->save_logs( $logs ); } @@ -161,12 +162,13 @@ public function get_option_name() { /** * Create a message array containing the data and other information. * - * @param mixed $data The log message data. - * @param mixed $type The log message type. + * @param mixed $data The log message data. + * @param mixed $type The log message type. + * @param float|null $processing_time The event processing time. * * @return array */ - private function make_message( $data, $type ) { + private function make_message( $data, $type, $processing_time ) { // Determine the type of message. if ( empty( $type ) ) { $type = $this->default_message_type; @@ -182,11 +184,12 @@ private function make_message( $data, $type ) { // Construct the message. $message = array( - 'type' => $type, - 'time' => time(), - 'user_ID' => get_current_user_id(), - 'uri' => preg_replace( '/code=([^&]+)/i', 'code=', $request_uri ), - 'data' => $data, + 'type' => $type, + 'time' => time(), + 'user_ID' => get_current_user_id(), + 'uri' => preg_replace( '/code=([^&]+)/i', 'code=', $request_uri ), + 'data' => $data, + 'processing_time' => $processing_time, ); return $message; @@ -251,32 +254,29 @@ public function get_logs_table( $logs = array() ) { ?> - - + + + + + + + - - + +
DetailsData
-
- - -
-
- - -
user_login : '0' ); ?>
- +