Fa Tomcat 7.0.6 già sostenere l'annotazione SevletSercurity nella specifica servlet 3.0?

StackOverflow https://stackoverflow.com/questions/4789871

  •  24-10-2019
  •  | 
  •  

Domanda

Sono stato Tring per usare l'annotazione ServletSecurity della specifica servlet 3.0 nel Tomcat 7.0.6, ma sembra che server Tomcat non analizza l'annotazione ServletSecurity. Il codice sta seguendo,

@WebServlet(name="IndexServlet",urlPatterns={"/index"})
@DeclareRoles("ROLE_ADMIN")
@ServletSecurity(value=@HttpConstraint(rolesAllowed="ROLE_ADMIN"),httpMethodConstraints=@HttpMethodConstraint("GET"))
public class IndexServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  request.getRequestDispatcher("/WEB-INF/jsp/main.jsp").forward(request, response);
 }

}

Quindi, c'è qualcuno che ha testato l'annotazione ServletSecurity con successo in Tomcat 7? O il gatto 7 non supporta l'annotazione ServletSecurity ancora?

sono stato confuso dal il problema per pochi giorni, quindi qualcuno potrebbe capirlo per me? Ogni aiuto è apprezzato.

È stato utile?

Soluzione

È necessario rimuovere httpMethodConstraints=@HttpMethodConstraint("GET")

Una "caratteristica" interessante nella specifica è vincoli sono O - Non E. Quindi, se si richiede /index come GET -. Il vincolo di sicurezza passa e il vincolo rolesAllowed viene ignorato

Una libreria di terze parti come SecurityFilter [ http://securityfilter.sourceforge.net/ ] probabilmente farà un lavoro migliore a maneggevolezza vincolo rispetto a quanto previsto dal Servlet Spec.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top