如何基于用户角色限制对JSP的提交操作?

时间:2019-03-13 20:44:10

标签: java jsp security tomcat servlets

我有一个 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();

预期结果:

0 个答案:

没有答案