Announcement

Collapse
No announcement yet.

Seitenzugriff verweigern und multiple Instanzen

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

  • Seitenzugriff verweigern und multiple Instanzen

    Ich bin ein ziemlicher Neuling, was Tomcat und Apache2 betrifft.
    Für meinen Job richte ich momentan verschiedene Hudson-Instanzen (ein Continuous Integration System) ein, welche normalerweise unter dem Winstone-Container laufen. Das hat bisher auch alles prima geklappt. Nur wollen wir jetzt die Rechte ein wenig schränken, je nach Hudson-Instanz, da diese von verschiedenen Benutzergruppen genutzt werden. Und Winstone scheint im Großen und Ganzen recht unflexibel.

    Ich habe im Prinzip 3 Fragen:

    1. Was ist an sich eigentlich wirklich der Vorteil von Tomcat gegenüber dem Winservlet-Container? Sicherlich die Möglichkeiten alles zu konfigurieren, ... aber was denn eigentlich genau?

    2. Ist es möglich unter Tomcat den Zugriff auf eine bestimmte Seite zu verweigern? Soweit ich sehen kann gibt es Möglichkeiten die Zugriffe für lokale Ordner zu regeln. Doch ist mein Problem, dass ich gerne die Seite /hudson/people sperren möchte. Mit Apache und dem Winstone-Servlet-Container hat das bisher (etwas umständlich) geklappt. Nun frage ich mich, wie man das am geschicktesten mit Tomcat (und Apache2) erreicht.

    3. Wie gesagt gibt es von Hudson mehrere Instanzen, welche alle eine unterschiedliche Home-Variable haben. Für die einzelne Hudson-Instanz die ich momentan habe, war es ausreichend das Homeverzeichnis unter den JAVA_OPTS in der /etc/default/tomcat6 zu spezifizieren, was allerdings bei mehreren Instanzen problematisch wird. Gibt es für soetwas Tricks ohne dass ich Tomcat mehrmals installiere?

    Ich wäre wirklich dankbar, wenn jemand ein paar Antworten hätte.

  • #2
    1. http://tomcat.apache.org/tomcat-6.0-doc/index.html

    2. java.io.FilePermission http://tomcat.apache.org/tomcat-6.0-...ger-howto.html

    3. Ev je Instanz eine Webapp???
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      1. Hier hatte ich mir eher eine kleine, runde Zusammenfassung erhofft. Ein paar Zeilen. Aber ja, ich kann mir auch einfach die Seite mal genauer durchlesen, ... ich wollte nur die Gelegenheit nutzen.

      2. Die Seite habe ich mir vorher auch angesehen. Allerdings geht es mir nicht um FilePermissions (da ich absolut keine Ahnung habe wie und wo er diese people-page generiert (nach einiger Suche nichts gefunden, ... aus Mangel an Kenntnissen, wie der Aufbau dieser jars genau ist)), sondern um die Website http://host/hudson/people. Soweit ich das verstehe sind die FilePermissions für lokale Dateien gedacht, oder irre ich mich?

      3. Das ist klar. Doch (wo) kann man die Homevariablen für jedes Webapp einzeln setzen? Ich habe erst heute morgen Tomcat kennengelernt, ... und trotz etlicher Googelei bleibt mir die Variablensetzung in Tomcat unklar. Das konstruktivste war eben das Setzen der Variablen in /etc/default/tomcat6, ... was natürlich für eine einzige Webapp wunderbar funktioniert, aber bei mehreren Instanzen wird es dann unpassend.

      Außerdem: Vielleicht fehlinterpretiere ich auch deine Antwort, dann entschuldige ich mich(!), aber sie wirkt herablassend. Mir ist klar, dass man, wenn man über 8000 Posts hat, sich mit dem Thema wohl recht gut auskennt und die Fragen lächerlich erscheinen müssen, aber dennoch hat jeder mal klein angefangen und ich bin kein Mensch der Google scheut und sich normalerweise erst an Foren wendet, wenn die Geduld etwas am Ende ist, weil nichts klappt wie man es sich erhofft.
      Tomcat ist, meiner Meinung nach, recht undurchsichtig, zumindest wenn man gleich zu Beginn tiefer einsteigen will. Und ja, dieses Forum heißt Entwickler-Forum und wahrscheinlich bin ich, zumindest in Bezug auf Tomcat, hier etwas fehl am Platz. Aber es scheint noch eines der aktivsten zum Thema zu sein.

      Comment


      • #4
        Deine Anfoderung zu 1. empfinde ich seltsam. Wieso sollte hier jemand für dich eine Zusammfassung schreiben? Zumal "Vorteile" (genau wie "ist das Beste" usw.) sicherlich erstmal von den eigenen Anforderungen an das System abhängen. Die hast du nicht dargelegt. Möglichweise gibt es einen oder mehrere Ausschlussgründe um genau diese Software einzusetzen oder gerade nicht einzusetzen. Um eine möglich Antwort auf die Konfiguration einzuschränken: Sollte jemand hier die Dokumentation abschreiben? Auflisten was man Konfigurieren kann? Das steht alles auf der Seite???

        dass ich gerne die Seite /hudson/people sperren möchte
        Nun Gott sei Dank kann man aus diesem Stück Pfad ersehen, dass zum Sperren eine völlig andere externe Adresse gemeint war. Ich kenne zwar Hudson, aber war bsp. noch nie auf deren Site. Woher kann man wissen, dass es eine externe Adresse ist? Warum sollte nicht auf deinem Server dieses Verzeichnis/Datei vorhanden sein? Da der Tomcat serverseitig angesiedelt ist, wird er wohl nicht verhindern können, dass der Client mal wonaders hin surft....

        Weiterhin kann ich nicht wissen, was und wie du bisher mit deinen "Hudson-Instanzen" gemacht hast. Insofern war erstmal der Anfang darauf hinzuweisen, dass es möglicherweise sinnvoll wäre das aufzuteilen. Unklar ist was mit dem ganzen JAVA_OPTS zu tun hat? Wenn du für jede deiner Husdon eine Webapp deployt hast erübrigt sich das. Vermutlich wird dein Problem sein, dass du das manuell eingerichtet hast. Siehe server.xml-> Context

        Bye
        Zuletzt editiert von Christian Marquardt; 21.05.2010, 07:12. Reason: Rechtschreibung
        Christian

        Comment


        • #5
          Ist es möglich unter Tomcat den Zugriff auf eine bestimmte Seite zu verweigern? Soweit ich sehen kann gibt es Möglichkeiten die Zugriffe für lokale Ordner zu regeln. Doch ist mein Problem, dass ich gerne die Seite /hudson/people sperren möchte.
          Den Zugriff auf die people-Seite kann man beispielsweise blockieren, indem man sie in der Hudson-Webanwendung sperrt. Dazu in der Datei
          web.xml unter WEB-INF folgendes hinzufügen:

          <security-constraint>
          <web-resource-collection>
          <web-resource-name>People</web-resource-name>
          <url-pattern>/people/*</url-pattern>
          </web-resource-collection>
          <auth-constraint/>
          </security-constraint>

          Wie gesagt gibt es von Hudson mehrere Instanzen, welche alle eine unterschiedliche Home-Variable haben. Für die einzelne Hudson-Instanz die ich momentan habe, war es ausreichend das Homeverzeichnis unter den JAVA_OPTS in der /etc/default/tomcat6 zu spezifizieren, was allerdings bei mehreren Instanzen problematisch wird. Gibt es für soetwas Tricks ohne dass ich Tomcat mehrmals installiere?
          Man muß HUDSON_HOME nicht global als system property setzen. Dies kann pro Hudson-Webanwendung geschehen. Dazu in der web.xml folgendes
          hinzufügen (ist glaube ich bereits vorbereitet, aber leer):

          <env-entry>
          <env-entry-name>HUDSON_HOME</env-entry-name>
          <env-entry-type>java.lang.String</env-entry-type>
          <env-entry-value>Hier den Pfad eintragen</env-entry-value>
          </env-entry>

          Die web.xml ist im hudson.war. Entweder dort drin editieren oder gleich nach webapps expandieren (macht der Tomcat sowieso beim hochfahren). Wenn Du zwei Instanzen auf einem Tomcat betreibst muß sich der Pfad sowieso unterscheiden, also z.b. hudson1 und hudson2.

          Dies hat übrigens beides nichts mit Tomcat zu tun sondern gilt für alle Container. Es gibt keine spezielle Variablensetzung für Tomcat und die Servlet-Security kann ebenfalls jeder Container.

          Comment

          Working...
          X