我有一个 some.jsp ,其中有一个操作按钮,例如 delete 。我有用户及其角色。 Tomcat 8提供了安全性。假设用户进行了一些操作并点击了发送按钮 带有参数的 url 进入servlet。让我们以servlet映射为例:
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>servlets.myServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sName</servlet-name>
<url-pattern>/action1</url-pattern>
</servlet-mapping>
<security-constraint>
<display-name>administrators</display-name>
<web-resource-collection>
<web-resource-name>action1</web-resource-name>
<description>action1</description>
<url-pattern>/action1</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>allowed for administrator</description>
<role-name>administratorRole</role-name>
</auth-constraint>
</security-constraint>
基于<url-pattern>/action1</url-pattern>
附带的所有内容,仅允许管理员使用。
但是我只想限制删除按钮。该 some.jsp 上的其他所有内容都应允许其他用户使用。如何实现?
JSP部分:
<form name="frm" action="action1">
<input type="hidden" name="prm1" value="${prm1}"/>
<input type="hidden" name="prm2" value="${prm2}"/>
<input id="btnid" type="submit" value="send" name="btn"/>
</form>
<form name="frm" action="action1">
<input type="hidden" name="prm1" value="${prm1}"/>
<input type="hidden" name="prm2" value="${prm2}"/>
<input id="btnid" type="submit" value="delete" name="btn"/>
</form>
Servlet部分:
String actionType=request.getParameter("btn");
if(actionType.equals("send")) doSend();
if(actionType.equals("delete")) doDel();
预期结果:
像http://localhost:8084/action1?prm1=111&prm2=221&btn=send这样的URL可以由任何人执行。
像http://localhost:8084/action1?prm1=111&prm2=221&btn=delete这样的URL只可以对管理员执行。