# doPost ServletInputStream



## Generic1 (10. Aug 2010)

Hallo,

ich hätte noch eine Frage zu der doPost- Methode des Servlets und zwar liest man ja Parameter, welche vom Client zum Server gesendet werden, mit request.getParameter(String name) aus dem request- Objekt aus, das ist klar, 
Jetzt hab ich aber eine Fall, bei dem es kein name=value paar gibt und ich deshalb das vom Client gesendete mit dem


```
final ServletInputStream ips = request.getInputStream();
```

auslese. Ist das OK wenn man das so macht oder gibt es etwas zu bedenken bei dieser Lösung?
lg


----------



## Ullenboom (10. Aug 2010)

Was genau hast du vor? Es gibt also Parameter, aber weder GET noch Standard-POST-Paramter, sonder quasi was eigenes im Body? Dann kannst du das so machen, ich würde dir aber einen Blick auf REST empfehlen, das ist einfacher zu programmieren.

Jersey-Tutorial: REST, JAX-RS, RESTful Web-Services mit Java

Grüße

 Christian


----------



## Generic1 (10. Aug 2010)

>> sonder quasi was eigenes im Body? Dann kannst du das so machen

Besten Dank für die antwort, REST möchte ich momentan (noch) nicht einsetzen,
was wäre das eigene im Body, wie kann man das Abfragen ?

Vielen Dank,
lg


----------



## Ullenboom (10. Aug 2010)

?? Na was du jetzt schon machst. Wenn du request.getInputStream(); nutzt, dann doch nur deshalb, weil dir der Client etwas schickt, also in seinen OutputStream packt.

Grüße

 Christian


----------



## Generic1 (10. Aug 2010)

Das Problem ist noch, dass ich nicht unterscheiden kann, von wem der Request kommt -> von einem Client den ich akzeptieren kann oder von irgendeinem anderen Client und da liegt eben der Hund begraben.
Weißt du vielleicht, wie man das noch unterscheiden kann -> Ich war der Meinung im Body wird irgendwas mitgegeben anhand dessen man den Client unterscheiden kann!?
Vielen Dank,
lg


----------



## Ullenboom (10. Aug 2010)

Ahaaa. Was sieht du als Client-Unterscheidung vor? Da kann die IP sein, die man erfragen kann. Oder HEADER? Musst du vorher definieren. Kann man aber alles fälschen.

Christian


----------



## Gast2 (10. Aug 2010)

Ullenboom hat gesagt.:


> Ahaaa. Was sieht du als Client-Unterscheidung vor? Da kann die IP sein, die man erfragen kann. Oder HEADER? Musst du vorher definieren. Kann man aber alles fälschen.
> 
> Christian




Um es halbwegs sicher zu haben kann man SSL Client Zertifikate verwenden und z.B. den CN auslesen. Dazu muss dann natürlich jedem Client ein entsprechendes Zertifikat ausgestellt werden.


----------



## Ullenboom (10. Aug 2010)

Na da muten wir dem Fragesteller aber einziges zu


----------



## Gast2 (10. Aug 2010)

Ah jo 

Aber solange nur ein gültiges SSL Zertifikat vorgezeigt werden muss hält sich das ja noch in Grenzen. Details verifizieren und jedem Client ein eigens Zertifikat mitgeben und am besten das noch gegen eine Revokation List prüfen muss ja nicht sein


----------

