Java rest web service

Hi,
also ich bin der Neue. :slight_smile:

Ich bin gerade dabei mich in Java ein wenig zurecht zu finden.
Da meine mir bevorstehende Aufgabe ein XML Web Service sein wird, habe ich dahin gehend nun auch meine ersten Gehversuche gemacht.

Leider bekomme ich es nicht hin, eine Anmeldung in Java zu implementieren.
Hier mal vorweg ein wenig code:

Mein Einstiegspunkt:

public static void main(String[] args)
    {
        HttpServer oServer = null;
        try
        {
            oServer = HttpServerFactory.create("http://localhost:8080/rest");
        }
        catch( Exception oEx )
        {
            System.err.println( oEx.getMessage() );
            return;
        }
        
        oServer.start();
        JOptionPane.showMessageDialog(null, "Ende" );
        oServer.stop( 0 );
    }

Meine Willkommens Klasse

@Path( "greeting" )
public class Greeting {
    
    @Resource
    WebServiceContext oContext;
    
    @GET
    @Produces( MediaType.APPLICATION_XML )
    public cos.User greeting()
    {
        cos.User oUser = new cos.User();
        oUser.Firstname = "evil";
        oUser.Lastname = "homer";
        oUser.pk = 1;
        oUser.Username = "evilhomer";
        
        return oUser;
    }
}

Nun hätte ich gerne, das in Greeting geprüft wird ob der Benutzer angemeldet ist und wenn nein, er sich anmelden muss. Sei es per HttpAuth oder ähnlichem.
Könnt ihr mir da mal ein „best practice“ zeigen.

Vielleicht sehe ich den Wald vor lauter Bäumen nicht mehr, aber ich komme zur Zeit nicht weiter.
Vielleicht fehlen mir auch die Wörter nach den ich suchen muss.

Wäre echt spitze, wenn mir da jemand ein wenig helfen könnte.

Google: REST java security

???

Danke für die Antwort - wenn es so einfach wäre hätte ich nicht gefragt.
Ich habe mir aber ein Beispiel ohne Glassfish Webserver oder so erhofft.

Ich erstelle mir mit der HttpServerFactory ja eine HTTP Server, wie bekomme ich diesem nun beigebracht, das er bei Anfragen zuerst nach Benutzer und Kennwort fragt.

Ich will ja nicht pedantisch wirken, aber auch hier:
Google: jersey rest security

Der erste Treffer: http://javacolors.blogspot.de/2013/05/how-to-secure-rest-services-exposed.html

Insgesamt hat man natürlich ein Problem: sehr simples REST bedeutet dann natürlich, dass man beim Rest (also bei bei allem anderen Krempel… lol) mehr leisten muss.
REST mit einem richtigen Webserver (oder Applicationserver) bedeutet, dass man ausgewachsene, deklarative Secrity nutzen kann.

Hmmm - d.h.

ReSt ist nicht zu empfehlen als Webservice?
Was wäre zu empfehlen?

WSDL ist schon ausgeschlossen, eben so wie SOAP.
Es sollte etwas mehr oder wenig selbst gesticktes sein.

Beste GrĂĽĂźe

Wie kommst du da drauf? Das sehe ich nicht so.

Aber es ist m.E. sinnvoller, einen voll ausgewachsenen REST Service zu entwerfen, mit einem richigen Webserver. Die Möglichkeiten von Jersey und dem Jetty Server sind begrenzt. Das stellt aber nicht das Protokoll im ganzen für den produktiven Einsatz in Frage.

[QUOTE=FArt]Wie kommst du da drauf? Das sehe ich nicht so.

Aber es ist m.E. sinnvoller, einen voll ausgewachsenen REST Service zu entwerfen, mit einem richigen Webserver. Die Möglichkeiten von Jersey und dem Jetty Server sind begrenzt. Das stellt aber nicht das Protokoll im ganzen für den produktiven Einsatz in Frage.[/QUOTE]

O.K. das habe ich deinem einen Post zu entnommen.
„Problem“ bei einem Webserver ist… jetzt muss ich ein wenig ausholen. :slight_smile:

Das Programm soll später bei X Kunden im Netzwerklaufen, diese Kunden haben KEINEN Admin od. ähnliches. Der Kern des Programms, der die Business Logik hat soll aber Schnittstellen basiert sein.
Alles nicht so einfach in einem Post unter zu bringen.

Der letzte Link den du gepostet hast, hat mich zu http://simplapi.wordpress.com/2013/01/24/jersey-jax-rs-implements-a-http-basic-auth-decoder/ gefĂĽhrt.

Das wird mir schon einmal eine ganze Ecke weiter helfen.

Da danke ich dir in jedem Fall schon einmal fĂĽr die MĂĽhe!

[QUOTE=evilhomer]
Das Programm soll später bei X Kunden im Netzwerklaufen, diese Kunden haben KEINEN Admin od. ähnliches.[/QUOTE]

Auch der integrierte Webservice ist ein Webservice. Die Problematiken des Betriebs eines Webservice in einem beliebigen (und fremden) Netzwerk sind die selben, ob mit Tomcat oder einem anderen Webserver.
Die Anforderung per se ist ein hehrer Wunsch, in der Praxis oft mit Problemen behaftet.

Nicht ganz, der Webserver wäre immer noch ein Fremdprodukt.
Zumindest in den Augen des Kunden.
Die haben dann wieder die Angst - wenn die nur das Wort Webserver hören - das sie dann, wenn was nicht geht damit nicht zurecht kommen.

Also ist eher ein Verkaufsargument…