Basic-Authentifizierung mit eingebetteten Jetty-7-server und keine web.xml Datei

Habe ich eine embedded Implementierung von Jetty 7 als Dienst ausgeführt wird, und hinzufügen möchten, basic-Authentifizierung ohne web.xml Datei ein servlet.

Habe ich meine Anmeldeinformationen mithilfe der beschriebenen Schritte hier

Ich dachte, ich könnte den server erstellen, erstellen Sie eine Sicherheits-handler mit basic-Authentifizierung und fügen Sie eine HashLoginService der security manager. Aber ich bin klar fehlen einige Dinge, da bin ich nie, immer Eingabeaufforderung für Anmeldeinformationen.

Unten ist der code. Jegliche Hilfe würde sehr geschätzt werden.

    server = new Server(port);
    server.addConnector(getSslChannelConnector(securePort));
    server.setGracefulShutdown(1000);
    server.setStopAtShutdown(true);

    //create the context handler for the server
    ServletContextHandler sch = new ServletContextHandler(server, WEBAPP_CONTEXT);

    //attach the security handler to it that has basic authentication
    sch.setSecurityHandler(getSecurityHandler());

    //define the processing servlet.
    sch.addServlet(new ServletHolder(new ProcessingServlet()), "/process");

    .
    .
private SecurityHandler getSecurityHandler() {

    //add authentication
    Constraint constraint = new Constraint(Constraint.__BASIC_AUTH,"user");
    constraint.setAuthenticate(true);
    constraint.setRoles(new String[]{"user","admin"});

    //map the security constraint to the root path.
    ConstraintMapping cm = new ConstraintMapping();
    cm.setConstraint(constraint);
    cm.setPathSpec("/*");

    //create the security handler, set the authentication to Basic
    //and assign the realm.
    ConstraintSecurityHandler csh = new ConstraintSecurityHandler();
    csh.setAuthenticator(new BasicAuthenticator());
    csh.setRealmName(REALM);
    csh.addConstraintMapping(cm);

    //set the login service
    csh.setLoginService(getHashLoginService());

    return csh;

}
private HashLoginService getHashLoginService() {

    //create the login service, assign the realm and read the user credentials
    //from the file /tmp/realm.properties.
    HashLoginService hls = new HashLoginService();
    hls.setName(REALM);
    hls.setConfig("/tmp/realm.properties");
    hls.setRefreshInterval(0);
    return hls;
}
InformationsquelleAutor jspyeatt | 2011-11-08
Schreibe einen Kommentar