2011-01-25 7 views
1

私はtomcat 7.0.6でServlet 3.0仕様のServletSecurity注釈を使用していましたが、TomcatサーバーはServletSecurity注釈をスキャンしていないようです。コードは次のとおりですtomcat 7.0.6は、サーブレット3.0仕様のSevletSercurity注釈をすでにサポートしていますか?

@WebServlet(name="IndexServlet",urlPatterns={"/index"}) 
@DeclareRoles("ROLE_ADMIN") 
@ServletSecurity([email protected](rolesAllowed="ROLE_ADMIN"),[email protected]("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); 
} 

} 

Tomcat 7でServletSecurityアノテーションをテストしたことがある人はいますか?または、tomcat 7はまだServletSecurityアノテーションをサポートしていませんか?

私は数日間問題に混乱していたので、誰かが私のためにそれを理解することができましたか?どんな助けもありがとうございます。あなたはスペックに[email protected]("GET")

面白い「機能」を削除する必要が

答えて

1

はcontraintsがあるORれる - ではないと。したがって、/indexをGETとして要求している場合、セキュリティ制約がパスされ、rolesAllowed制約は無視されます。

SecurityFilter [http://securityfilter.sourceforge.net/]のような第三者のライブラリは、サーブレット仕様で提供されているものと比べて、おそらく制約処理でより良い仕事をします。

+0

私は 'httpMethodConstraints = @ HttpMethodConstraint(" GET ")'を削除しましたが、問題はまだ残っていました。ですから、私はtomcat 7が '@ ServletSecurity'アノテーションを完全にサポートしていないと思います。 –

+0

Tomcatはバージョン7.0.11まで@ServletSecurityアノテーションをサポートしていませんでした。 –

関連する問題