Jetty - Auth Basic trimite 403 în loc de 401 în timp ce configurează Gerrit

Am un fișier de război (în special, gerrit.war ), care se așteaptă ca containerul , debarcader) până la gestionați autentificarea HTTP de bază și transmiteți acele informații până la webapp . Deci nu am acces la cod sau la fișierul web.xml.

Urmăresc aceste instrucțiuni pentru a utiliza config-uri de ieșire care ies la ieșire pentru a împacheta gerrit într-un domeniu, dar când accesez URL-ul de bază (/login /) Am o eroare de 403 (interzisă). M-aș aștepta să obțin un număr de 401 care să-mi solicite browser-ul să solicite acreditări (nu?)

Pot posta fișierele mele, dar nu am schimbat nimic de la exemplul de mai sus. Dați-mi voie să știu dacă ar ajuta, totuși ..

0

1 răspunsuri

Există probabil multe moduri în care acest lucru se poate întâmpla. În cazul meu a apărut deoarece constrângerea mea nu a avut un rol stabilit. Acest cod a generat 403:

private void secureServlet(ServletContextHandler handler) {
    ConstraintSecurityHandler security = new ConstraintSecurityHandler();
    security.setRealmName(this.realm);
    security.setAuthenticator(new BasicAuthenticator());
    security.setLoginService(new WebLoginService(this.engine));

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

    ConstraintMapping mapping = new ConstraintMapping();
    mapping.setConstraint(constraint);
    mapping.setPathSpec("/*");

    security.addConstraintMapping(mapping);
    handler.setSecurityHandler(security);
}

Comentând în linia de rol va cere debarcaderului să răspundă cu 401: s.

0
adăugat