当前位置:  开发笔记 > 编程语言 > 正文

如何在Spring MVC中返回403 Forbidden?

如何解决《如何在SpringMVC中返回403Forbidden?》经验,为你挑选了5个好方法。

当用户缺少查看特定页面的权限时,我希望我的控制器返回正确的HTTP响应代码.



1> Chris Ritchi..:

你也可以扔掉

org.springframework.security.access.AccessDeniedException("403 returned");

这将在响应头中返回403.


这为我返回500.

2> yankee..:

创建一个使用@ResponseStatus注释的异常,例如:

@ResponseStatus(HttpStatus.FORBIDDEN)
public class ForbiddenException extends RuntimeException {
}

现在只需在处理程序方法中抛出异常,响应将具有状态403.



3> Cheekysoft..:

匆匆

如果您使用的是纯JSP视图(最常见),那么只需添加即可

<% response.setStatus( 403 ); %>

在视图文件中的某个位置.在顶部是一个不错的地方.

详情

在MVC中,我总是在视图中设置它,并且在大多数情况下使用Spring-MVC,使用它SimpleMappingExceptionResolver来呈现正确的视图以响应抛出的运行时异常.

例如:PermissionDeniedException在控制器或服务层中创建并抛出a ,并使异常解析器指向视图文件permissionDenied.jsp.此视图文件设置403状态并向用户显示相应的消息.

在Spring bean XML文件中:


  
    
                
        rescues/permissionDenied
      
      ... set other exception/view mappings as s here ...
    
  
  



  
  
  

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



4> Joe Liversed..:

使用a ExceptionResolver是一种很好的方法,但是如果你只想让它与视图无关,你当然可以response.sendError(HttpServletResponse.SC_FORBIDDEN, "AdditionalInformationIfAvailable");在你的Controller中调用它.



5> John Boker..:

你能使用response.setStatus(403)吗?

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有