# JSP: Datei mit dem Namen des BenutzerId speichern



## tu-besucher (12. Aug 2004)

Hallo Leute,
ich habe eine Webseite gebaut, die Benutzer müssen sich anmelden (BenutzerId), die EingabeParameter (Parameter in Input) sollen als Textdatei mit dem Namen des Benutzers (BenutzerId) gespeichert werden. 

Hierbei habe ich 2 Probleme:

    1. Wie kann ich Tomcat konfigurieren, um die Benutzer zu identifizieren (BenutzerId und Passwd): Login
    2. Wie kann ich die Datei mit dem Namen des Benutzers speichern

P.S.: - bei Datei speichern habe ich kein Problem, dank Java-Forum ...
	
	
	
	





```
<%
      ...
      String id = request.getParameter("!!!!!!!!!!!!!!!!!!!!!!!");  <--- ICH DENKE HIER LIEGT DAS PROBLEM 
      FileOuputStream o = new FileOuputStream(id + ".txt");            
      //Spalten 
      o.println(request.getParameter("Eingabe1") + ";"); 
      o.println(request.getParameter("Eingabe2") + ";"); 
      o.println(request.getParameter("Eingabe3") + ";"); 
      o.println(request.getParameter("Eingabe4") + ";"); ...%>
```

Ich danke Euch 

Joe


----------



## Vicky (13. Aug 2004)

zu 1. Mit TomCat hat es nichts zu tun! Wie wärs mit einer Tabelle, in der die BenutzerId und das dazugehörige Passwort steht! Und dann könntest du ne Abfrage machen, ob die eingegeben BenutzerId und das Passwort mit den sachen in der tabelle übereinstimmen!


----------



## tu-besucher (13. Aug 2004)

Hi,
vielen Dank.
Ich denke es könnte auch mit Tomcat klappen

```
So ähnlich 
...
<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>Example Form-Based Authentication Area</realm-name>
    <form-login-config>
      <form-login-page>/security/login/login.jsp</form-login-page>
      <form-error-page>/security/login/error.jsp</form-error-page>
    </form-login-config>
  </login-config>...
Aber wo die BenutzerId und pw in web.xml geschrieben werden, ist noch das Problem bei mir ...
```

Was deine Lösung betrifft, brauche ich eine Verbindung zu einer Datenbank (z.B. MS access) oder?


----------



## akira (13. Aug 2004)

Hi,

Benutzer und Rollen kannst Du in der Datei tomcat-users.xml im Verzeichnis conf definieren. Standardmäßig sieht die so aus:


```
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>
```

Dort kannst selber Rollen und User definieren.
In der xml-Datei, in der Du Deinen Context definierst must Du follgendes Attribut ergänzen:


```
<Context ..... privileged="true">
```

In Deiner web.xml kannst Du nun die Sicherheitsrichtlinien festlegen, bei der Tomcat-Administration sieht das z.B. follgendermasen aus:


```
<security-constraint>
    <display-name>Tomcat Server Configuration Security Constraint</display-name>
    <web-resource-collection>
      <web-resource-name>Protected Area</web-resource-name>
      
      <url-pattern>*.jsp</url-pattern>
      <url-pattern>*.do</url-pattern>
      <url-pattern>*.html</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      
      <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>
```

Diese Angaben müssen unter dem Servlet-Mapping bzw. Taglibs angeführt werden.


----------



## Guest (18. Aug 2004)

Hi, :cry: 
ich habe jetzt ein neues Problem (Login mit Tomcat 4.1.3) !!
Wenn ich mit dem richtigen pw einlogge, scheint die folgende Fehlermeldung:

```
HTTP Status 400 - Invalid direct reference to form login page
    --------------------------------------------------------------------------------
    type Status report
    message Invalid direct reference to form login page
    description The request sent by the client was syntactically incorrect (Invalid direct reference to form login page).
```
Für die Anmeldung habe ich tomcat-users.xml so geändert:

```
<?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
          <role rolename="registered-user"/>
          <role rolename="administrator"/>
          <role rolename="employee"/>
          <role rolename="ceo"/>
          <role rolename="executive"/>
          <user username="gates" password="llib" roles="employee"/>
          <user username="gerstner" password="lou" roles="ceo"/>
          <user username="farah" password="abcd1" roles="registered-user"/>
          <user username="andi" password="abcd2" roles="registered-user"/>
          <user username="elach" password="abcd3" roles="administrator"/>
    </tomcat-users>
```
Und die web.xml-Datei:

```
...
<security-constraint>
      <display-name>Example Security Constraint</display-name>
      <web-resource-collection>
         <web-resource-name>DiplomArbeit</web-resource-name>
	 
         <url-pattern>/protected/</url-pattern>	
      </web-resource-collection>
      <auth-constraint>
         
          [b]<role-name>administrator</role-name>
          <role-name>registered-user</role-name>
          <role-name>employee</role-name>[/b]
      </auth-constraint>
    </security-constraint>

    
    <login-config>
      <auth-method>FORM</auth-method>
      <realm-name>Example Form-Based Authentication Area</realm-name>
      <form-login-config>
        [b]<form-login-page>/protected/login.jsp</form-login-page>
        <form-error-page>/protected/error.jsp</form-error-page>[/b]
      </form-login-config>
    </login-config>

    
    <security-role>
      [b]<role-name>administrator</role-name>
    </security-role>
    <security-role>
      <role-name>registered-user</role-name>
    </security-role>
    <security-role>
      <role-name>employee</role-name>[/b]
    </security-role>
....
```
und die einfache *login.jsp* sieht wie folgt aus:

```
<html>
<head>
<title>Login Page for Examples</title>
<body bgcolor="white">
[b]<form method="POST" action='<%= response.encodeURL("j_security_check") %>'>[/b]  <-- HIER ??????
  <table border="0" cellspacing="5">
    <tr>
      <th align="right">Username:</th>
      <td align="left"><input type="text" name="j_username"></td>
    </tr>
    <tr>
      <th align="right">Password:</th>
      <td align="left"><input type="password" name="j_password"></td>
    </tr>
    <tr>
      <td align="right"><input type="submit" value="Log In"></td>
      <td align="left"><input type="reset"></td>
    </tr>
  </table>
</form>
</body>
</html>
```
vielen Dank im vorraus für eure Unterstützung


----------

