code: func (exp *expirationRejectRule) Apply(message *common.Envelope) error {
  	ordererConf, ok := exp.filterSupport.OrdererConfig()
  	if !ok {
  		logger.Panic("Programming error: orderer config not found")
  	}
  	if !ordererConf.Capabilities().ExpirationCheck() {
  		return nil
  	}
  	signedData, err := message.AsSignedData()
  
  	if err != nil {
  		return errors.Errorf("could not convert message to signedData: %s", err)
  	}
  	expirationTime := crypto.ExpiresAt(signedData[0].Identity)
  	// Identity cannot expire, or identity has not expired yet
  	if expirationTime.IsZero() || time.Now().Before(expirationTime) {
  		return nil
  	}
  	return errors.New("identity expired")
  }
docs: // Apply checks whether the identity that created the envelope has expired