当前位置: 首页 > 面试题库 >

如何在Spring MVC中返回403禁止访问?

罗均
2023-03-14
问题内容

我希望我的控制器在用户没有权限查看特定页面时返回正确的HTTP响应代码。


问题答案:

匆匆

如果您使用的是普通JSP视图(最常见),则只需添加

<% response.setStatus( 403 ); %>

视图文件中的某处。在顶部是一个不错的地方。

详情

在MVC中,我将始终在视图中进行设置,在大多数情况下,对于Spring-
MVC,请使用SimpleMappingExceptionResolver来呈现正确的视图以响应抛出的运行时Exception。

例如:PermissionDeniedException在控制器或服务层中创建一个并将其抛出,并使异常解析器指向视图文件permissionDenied.jsp。该视图文件设置403状态并向用户显示适当的消息。

在您的Spring bean XML文件中:

<bean id="exceptionResolver"
      class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  <property name="exceptionMappings">
    <props>
      <prop key="PermissionDeniedException">          
        rescues/permissionDenied
      </prop>
      ... set other exception/view mappings as <prop>s here ...
    </props>
  </property>
  <property name="defaultErrorView" value="rescues/general" />
</bean>

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
  <property name="prefix" value="/WEB-INF/views/" />
  <property name="suffix" value=".jsp" />
</bean>

如果需要实现用户登录机制,请查看Spring Security(以前称为Acegi Security)。



 类似资料:
  • 问题内容: 我正在尝试制作Sitecraper。我是在本地计算机上制作的,在那儿工作得很好。当我在服务器上执行相同操作时,它显示403禁止错误。我正在使用PHP简单HTML DOM解析器 。我在服务器上收到的错误是这样的: 警告:file_get_contents(http://example.com/viewProperty.html?id=7715888)[function.file- get

  • 我使用http://localhost:8080/auth/realms/{realm_name}/protocol/openid-connect/token endpoint创建令牌。 grant_type=client_credentials 客户端-id:------------- 客户端-secret:78296D38-CC82-4010-A817-65C283484E51 现在我想获得r

  • 我正在调用CloudBlobContainer。CreateIfNotExist(请参阅下面的FindOrCreatePrivate ateBlobContainer方法)间接来自Web API服务,但它返回以下403禁止错误消息: 以下是生成错误的代码: 我需要一些帮助来解决此错误的原因。我尝试了以下方法: 已检查要创建的容器的名称是否有效,并且在这种特定情况下,仅由小写字母组成(无特殊或大写字

  • 共享Api实现类,添加preauthorize-admin,查看所有用户 这是我的JUnit测试,我发送get请求并返回403错误。

  • 对localhost的Ajax请求返回403错误。然而,当我更改controller requestMethod以获取并在浏览器上打开请求“url”时,它会显示从服务器返回的json数据。我希望使用这些数据填充一个下拉列表。请帮帮我。我正在使用spring security 4.0和spring MVC框架。CSRF未禁用。此外,该url在Spring得到保护。 我在这里查看了相关问题,但没有找到

  • 问题内容: 我编写了一个测试UsersController的单元测试。UsersControllerTest.findUser工作正常,但不能正常运行UsersControllerTest.insertGetModifyDelete。 在测试日志中,我可以看到POST请求与UsersController的任何方法都不匹配,但是我不明白为什么。您能帮我这个吗? 这是我其余的Java类: 我有2种方法