Пример #1
0
 /**
  * Check if a stream is allowed to play
  *
  * @return true if allowed, false otherwise.
  */
 public boolean checkTicket(IMediaStream stream) {
   String name = stream.getName();
   IClient client = stream.getClient();
   if (client == null) {
     logger.debug("No client, returning ", stream);
     return false;
   }
   String clientQuery = stream.getClient().getQueryStr();
   logger.trace(
       "checkTicket(IMediaStream stream="
           + stream
           + ", String name="
           + name
           + ", String clientQuery="
           + clientQuery
           + ")");
   try {
     Ticket streamingTicket = StringAndTextUtil.getTicket(clientQuery, ticketTool);
     logger.debug(
         "Ticket received: " + (streamingTicket != null ? streamingTicket.getId() : "null"));
     if (streamingTicket != null
         && isClientAllowed(stream, streamingTicket)
         && ticketForThisPresentationType(streamingTicket)
         && doesTicketAllowThisStream(name, streamingTicket)) {
       logger.info(
           "checkTicket(IMediaStream stream="
               + stream
               + ", String name="
               + name
               + ", String clientQuery="
               + clientQuery
               + ") successful.");
       return true;
     } else {
       logger.info(
           "Client not allowed to get content streamed for IMediaStream stream="
               + stream
               + ", String name="
               + name
               + ", String clientQuery="
               + clientQuery
               + ")");
       return false;
     }
   } catch (IllegallyFormattedQueryStringException e) {
     logger.warn("Illegally formatted query string [" + clientQuery + "].");
     return false;
   }
 }