Announcement

Collapse
No announcement yet.

Tomcat Dateizugriff

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tomcat Dateizugriff

    Hallo,

    ich stehe gerade auf dem Schlauch

    Folgende Herausforderung:
    Für meine MP3-Sammlung gibt es eine WebApp (Tomcat 5.5, Linux Ubuntu), die mir alle Infos zeigt (Pfade, usw.) und mit der ich mir für meinen bevorzugten MP3-Player eine Playlist zusammenstellen kann.
    Jetzt hatte ich Lust, mir ein Tool zu bauen, mit dem ich die Musik direkt im Browser abspielen kann ( jl1.0.1.jar ), das ist u.a. eine Applet-Erweiterung, die eben MP3's abspielt. Das Teil selbst funktioniert einwandfrei.

    Mein erster Gedanke war, über einen symbolischen Link das ROOT DIR der Sammlung (nennen wir es /mnt/musik ) im Root DIR der App ( /srv/web ) dem Tomcat zugänglich zu machen :
    Code:
     java.io.IOException: Server returned HTTP response code: 505 for URL: http://localhost:8080/MyMusic/msc/Blondie/Sunday girl.mp3
    Dann kam ich auf die Idee, unter Tomcat eine eigene App einzurichten (die nur Dateien liefert, also unter /conf/Catalina/localhost eine eigene context-Datei hat ) Ich weiss, dass so etwas prinzipiell machbar ist :
    Code:
    java.io.FileNotFoundException: http://localhost:8080/trick/Blondie/Sunday+girl.mp3
    Wenn ich aber auf eine MP3 zugreife, die WIRKLICH im Ordner /srv/web/test liegt, dann klappt alles.

    Hab schon einiges probiert , ich denke , das Problem ist durch die richtige Tomcat-Konfiguration (policy ?) zu lösen (oder des OS ?), komme aber gerade nicht weiter . Hat jemand eine Idee ?

    Gruß

  • #2
    Das du die Schutzmechnismen umgehen willst, ist das tatsächlich nur über die policies lösbar

    http://tomcat.apache.org/tomcat-7.0-...ger-howto.html

    ->java.io.FilePermission - Controls read/write/execute access to files and directories.

    Wer startet einen Webserver (Tomcat) und ruft dann eine Webapplication auf, um eine MP3 wiederzugeben?
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      Wer startet einen Webserver (Tomcat) und ruft dann eine Webapplication auf, um eine MP3 wiederzugeben?
      ich z.B. , siehe oben.

      Ich habe nun
      permission java.io.FilePermission "/mnt/Musik/*", "read";
      in die policies eingetragen, es hat sich aber nichts geändert.

      gruß

      Comment


      • #4
        Du startest ihn auch mit dem SecurityManager?
        Christian

        Comment


        • #5
          Du startest ihn auch mit dem SecurityManager?
          Ja

          Code:
          grant { 
              // Required for JNDI lookup of named JDBC DataSource's and
              // javamail named MimePart DataSource used to send mail
              ....
              permission java.net.SocketPermission "localhost:3306", "connect";
              permission java.io.FilePermission "/mnt/win2k/Musik/*", "read";
          };
          P.S. Tomcat startet nun mit einer FehlerMeldung, die ich noch nicht weiter verfolgen konnte:
          Code:
           access denied ("java.lang.RuntimePermission" "accessClassInPackage.org.apache.tomcat.util.digester")
          Das hat aber eher nichts mit meinem Problem zu tun (?)

          Gruß

          Comment


          • #6
            Hallo,

            mit der Kombi
            Code:
             permission java.io.FilePermission "/mnt/win2k/Musik/*", "read";
            ,
            unter Tomcat eine eigene App (nur für Musik, ohne Servlets) einzurichten
            ,
            Code:
            <Context path="/trick" ... crosscontext="true" />
            ,

            klappt der Kram.

            Danke und Tschüß

            Comment


            • #7
              Schön, konnte nicht mehr antworten, da ich auf der Heimreise war
              Christian

              Comment

              Working...
              X