GVKun编程网logo

如何在 Java Spring MVC 中发出 403 错误(springmvc错误处理)

1

对于如何在JavaSpringMVC中发出403错误感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍springmvc错误处理,并为您提供关于1.2(SpringMVC学习笔记)SpringMV

对于如何在 Java Spring MVC 中发出 403 错误感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍springmvc错误处理,并为您提供关于1.2 (Spring MVC 学习笔记) Spring MVC 核心类及注解、Apache 中的 403 访问拒绝无法访问 ErrorDocument 403、asp.net-mvc – ELMAH – MVC 3 – 403 – 禁止:访问被拒绝、Git推送给出错误:HTTP 403 curl 22请求的URL返回错误:403 LimitedUploadSize的有用信息。

本文目录一览:

如何在 Java Spring MVC 中发出 403 错误(springmvc错误处理)

如何在 Java Spring MVC 中发出 403 错误(springmvc错误处理)

如何解决如何在 Java Spring MVC 中发出 403 错误

我在我的应用程序中编写了一个控制器,用于查找属于用户的项目并将其返回。但是,当请求包含不属于用户的项目的 ID 时,我的控制器返回一个空对象。如何强制应用程序改为发出 403 错误?

这里是控制器的简化代码:

  1. @Controller
  2. @RequestMapping("/item")
  3. public class ItemController {
  4. @Autowired
  5. private ItemService itemService;
  6. @GetMapping(value="/getItem",produces = MediaType.TEXT_PLAIN_VALUE)
  7. public String getItem(@RequestParam("itemId") int itemId,HttpServletRequest request,Model theModel) {
  8. // get the username from the HTTP Request
  9. Principal principal = request.getUserPrincipal();
  10. String theUsername = principal.getName();
  11. // create model attribute to bind form data
  12. Item theItem = itemService.getItem(itemId);
  13. if (theUsername.equals(theItem.getUserProfile().getUsername())) {
  14. theModel.addAttribute("item",theItem);
  15. } else {
  16. theModel.addAttribute("item",new Item());
  17. }
  18. return "json/item";
  19. }
  20. }

附言请注意,ItemService 只是一个中间层,它连接到数据层并获取要返回的数据。

附言我知道设计可能不遵循最佳实践。请随时在评论中强调任何设计问题,但请避免在帖子中对它们进行咆哮。

解决方法

您可以通过多种方式实现。您可以像这样在控制器类方法中设置状态代码

  1. @ResponseStatus(HttpStatus.SC_FORBIDDEN)
  2. public Response doSomething() {
  3. //do some thing here and return
  4. }

如果这不符合您的要求,您可以使用像这样的特殊处理程序方法来处理。

  1. @ResponseStatus(code = HttpStatus.SC_FORBIDDEN)
  2. class CustomException extends RuntimeException {
  3. //Handle something here;
  4. }

更多信息请关注this

1.2 (Spring MVC 学习笔记) Spring MVC 核心类及注解

1.2 (Spring MVC 学习笔记) Spring MVC 核心类及注解

一、DispatcherServlet

  DispatcherServlet 在程序中充当着前端控制器的作用,使用时只需在 web.xml 下配置即可。

  配置格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1"
  metadata-complete="true">
  <display-name>SpringMVC</display-name>
  
  <!-- 配置前端控制器 -->
  <servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class >
          org.springframework.web.servlet.DispatcherServlet
      </servlet-class> 
      <!-- 初始化时加载配置文件,该配置文件是在src目录下创建的。 -->
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc-config.xml</param-value>
      </init-param>
      <!-- 当前servlet与容器一起加载 -->
      <load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 所有请求都会被前端控制器拦截-->
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

其中 <init-param> 和 < load-on-startup > 是可选项.

如果 <init-param> 配置了 xml 文件的路径,则容器加载时会去指定路径加载文件。

如果没有配置则会在 WEB-INF 目录下选择命名格式为 servletName-servlet.xml 的文件。

servletName 是我们配置的前端控制器的 <servlet-name>, 本例为 springmvc,则会寻找 springmvc-servlet.xml。

<load-on-startup> 配置为 1,代表当前 Servlet 在容器启动时加载。

如果没有配置,则在请求该 Servelt 时才对其进行加载。

 

 

二、Controller 注解

  在控制类可以通过实现 Controller 接口,也可以通过注解来实现。

  通过注解实现只需要在控制类上添加 @Controller 注解即可。

  添加注解后再 xml 中可通过扫描语句进行扫描。

  扫描语句:<context:component-scan base-package = "指定包" />

  

 

三、RequestMapping 注解

  3.1Spring 通过 @Controller 注解找到控制器类后,还需将请求映射到具体的处理程序。

  RequesMapping 注解就是用于映射请求。

  例如:

public class FirstController{
    @RequestMapping(value = "/firstController")
    public String handleRequest(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {
        // TODO Auto-generated method stub
        model.addAttribute("msg", "hello SpringMVC");
        return "first";
    }
}

上例中间 /firstController 这个请求映射到 handleRequest 方法。

在浏览器地址栏输入 localhost:8080/SpringMVC/firstController 就可以了调用 handleRequest 方法。

 

  @RequestMapping 注解也可以映射到类上。

@RequestMapping(value = "/hello")
public class FirstController{
    @RequestMapping(value = "/firstController")
    public String handleRequest(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {
        // TODO Auto-generated method stub
        model.addAttribute("msg", "hello SpringMVC");
        return "first";
    }
}

  映射在类上时,要想访问类中的方法必须加上类的映射请求路径。

  例如想访问 handleRequest 方法,完整路径为:localhost:8080/SpringMVC/hello/firstController

  

  value 属性除了上述直接表示一个固定路径外,还有以下写法:

  

  3.2 指定变量和值  {变量}

  例如

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping(value = "/hello")
public class FirstController{
    @RequestMapping(value = "/firstController/{id}")//指定变量
    public String handleRequest(@PathVariable String id ,HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {
        // TODO Auto-generated method stub
        
        System.out.println("into mv");
        System.out.println(id);
        model.addAttribute("msg", "hello SpringMVC");
        return "first";
    }
}

在地址栏输入 loaclhost:8080/SpringMVC/hello/firsstController/xx,才能访问指定路径所映射的方法。

而 xxx 可以被 @pathVariable String id 中的 id 获取,形参名 xx 和路径 {xx} 中的名称要一致。如果没有 /xxx 则出现 404 页面。

 

  3.3 指定变量和正则表达式 ({变量:正则表达式})

  例如将 RequestMapping 改为:@RequestMapping (value = "/firstController/{id:\\d}")

  \\ 代表 \,正则 \d 中 \d 代表 0-9 任意一个数字,这样配置后:

  /firstController/0-9 任意一个数字可以访问成功(注意是一个数字,多个不符合条件),且可以通过 @pathVariable 获取 id 的值。

  /firstController/0-9 之外的字符或多个数字(大于 1 个),访问失败,出现 404 页面。

  

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping(value = "/hello")
public class FirstController{
        //末尾加上任意一位数字访问成功,反正失败
    @RequestMapping(value = "/firstController/{id:\\d}")
    public String handleRequest(@PathVariable String id ,HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {
        // TODO Auto-generated method stub
        System.out.println("into mv");
        System.out.println(id);
        model.addAttribute("msg", "hello SpringMVC");
        return "first";
    }
}    

访问失败:

 访问成功:

 

   RequestMapping 中还有一个属性 method, 用于指定处理何种类型的请求方法。

  例如 @RequestMapping (value = "/firstController/{id:\\d}" ,method = RequestMethod.POST) 处理 POST 类型的请求

    @RequestMapping (value = "/firstController/{id:\\d}" ,method = RequestMethod.GET) 处理 GET 类型的请求

  我们来看一个例子

@Controller
@RequestMapping(value = "/hello")
public class FirstController{
    @RequestMapping(value = "/firstController/{id:\\d}" ,method = RequestMethod.POST)//处理POST类型请求
    public String handleRequest(@PathVariable String id ,HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {
        // TODO Auto-generated method stub
        System.out.println("into mv");
        System.out.println(id);
        model.addAttribute("msg", "hello SpringMVC");
        return "first";
    }
}

  我们将方法设置为处理 POST 类型请求,使用 GET 类型的请求去访问会出现不支持 GET 类型的请求方法。

  method 可以设置多个值,中间用 “,” 隔开 @RquestMapping (method = {xxx.GET,xx.xPOST})

 

  Spring4.3 中又引入了组合注解,例如上例中的 @RequestMapping (method = Request.GET) 可以简化为:

  GetMapping (), 从字面上可以看出这个注解是包含了 GET 和 Mapping。处理 Get 类型的请求映射。

  除此之外,还有一些组合注解:

  PostMapping,PutMapping,DeleteMapping,PatcherMapping.

  

  params 属性:指定请求中必须包含、不包含某些参数、或者指定某些参数名和值要对应,才能被当前方法处理。

  例如 params = {"name"} 代表请求中要包含 name 参数。例如:localhost:8080/SpringMVC/hello/firstController/1?name=hcf;

  这样的就可以正确访问指定的方法,反之不行。

  params={“!name”} 代表请求中不包含 name 参数可以正确访问,反正不行。

  params={"name = hcf"}, 代表请求参数 name 要和指定的值匹配才可以正常访问,反正不行。例如

  localhost:8080/SpringMVC/hello/firstController/1?name=hcf; 可以访问,

  localhost:8080/SpringMVC/hello/firstController/1?name=h; 就不能访问。

 

  

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping(value = "/hello")
public class FirstController{//请求参数name为“hcf”才能访问
    @RequestMapping(value = "/firstController/{id:\\d}" ,method = {RequestMethod.POST,RequestMethod.GET},params = {"name=hcf"})
    public String handleRequest(@PathVariable String id ,HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {
        // TODO Auto-generated method stub
        System.out.println("into mv");
        System.out.println(id);
        model.addAttribute("msg", "hello SpringMVC");
        return "first";
    }
}

访问成功:

 

访问失败:

 

 

四、请求处理方法类型和返回值。

  支持的请求参数类型

  Request or response objects (Servlet API).

  Session object (Servlet API)

  org.springframework.web.context.request.WebRequest or org.springframework.web.context.request.NativeWebRequest

  java.util.Locale

  java.util.TimeZone (Java 6+) / java.time.ZoneId (on Java 8) 

   java.io.InputStream / java.io.Reader

  java.io.OutputStream / java.io.Writer

   org.springframework.http.HttpMethod

  java.security.Principal

  @PathVariable

  @RequestParam

  @RequestHeader

  @RequestBody

  @RequestPart

  @SessionAttribute

  @RequestAttribute

  HttpEntity<?>

  java.util.Map / org.springframework.ui.Model / org.springframework.ui.ModelMap

  org.springframework.web.servlet.mvc.support.RedirectAttributes

  org.springframework.validation.Errors / org.springframework.validation.BindingResult

  org.springframework.web.bind.support.SessionStatus

  org.springframework.web.util.UriComponentsBuilder

  这些是方法参数支持的类型,

  例如上例中的:

public String handleRequest(@PathVariable String id ,HttpServletRequest request, HttpServletResponse response, Model model) throws Exce

    参数类型都是受支持的参数类型。

 

  支持的返回类型:

  

     上例子中的返回值为 “first”, 返回字符串被解释为逻辑视图名。

  (返回 first 对应为 / WEB-INF/jsp/first.jsp, 这是因为在视图解析器中设置了前缀和后缀,后续会有具体使用方法)

 

五、视图解析器(ViewResolver)

  视图解析器将 DispatcherServlet 中的 view 参数传递给视图解析器,视图解析器将解析的视图传递给 DispatcherServlet。

  在视图解析中,可以设置前缀和后缀。

  例如我们设置前缀为 “/WEB-INF/jsp/”, 后缀设置为 “.jsp”。

  以前面的 Controller 类为例,Controller 执行完后将 “first” 返回给 HandlerAdapter,然后返回 DispathcerServlet。

  DispatcherServlet 将 “first” 交给视图解析器,视图解析器将 “first” 添加前缀和后缀,变成 “/WEB-INF/jsp/first.jsp”.

  然后解析指定路径视图将视图返回给 DispatcherServlet。

  我们来看下前缀与后缀的具体设置:

<bean id = "viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver">  <!-- 视图解析器-->        
                 <!--设置前缀-->
           <property name="prefix" value = "/WEB-INF/jsp/"></property>
                 <!--设置后缀-->
           <property name="suffix" value = ".jsp"></property>
       </bean>

 

 

最后结合上述,使用注解实现 SpringMVC

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1"
  metadata-complete="true">
  <display-name>SpringMVC</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- 配置前端控制器 -->
  <servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class >
          org.springframework.web.servlet.DispatcherServlet
      </servlet-class> 
      
      <!-- 初始化时加载配置文件,该配置文件是在src目录下创建的。 -->
      <!-- <init-param>  该选项不配做会自动寻找WEB-INF下名为springmvc-servlet.xml的文件。--> 
      <!--    <param-name>contextConfigLocation</param-name>-->
      <!--    <param-value>classpath:springmvc-config.xml</param-value>-->
      <!--</init-param>-->
      <!-- 当前servlet与容器一起加载 -->
      <load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 所有请求都会被前端控制器拦截-->
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

 

 

Controller 类

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping(value = "/hello")
public class FirstController{
    @RequestMapping(value = "/firstController/{id:\\d}" ,method = {RequestMethod.POST,RequestMethod.GET},params = {"name=hcf"})
    public String handleRequest(String name ,HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {
        // TODO Auto-generated method stub
        System.out.println("into mv");
        name = request.getParameter("name");
        System.out.println(name);
        //返回类型为String会被解释为逻辑视图名View就解决了。
        //Model交由Model对象来完成。
        model.addAttribute("msg", "hello  SpringMVC");
        return "first";
    }
}

 

springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>  
<beans     xmlns="http://www.springframework.org/schema/beans" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xmlns:context="http://www.springframework.org/schema/context"
         xsi:schemaLocation="  
            http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-4.3.xsd"> 
       <!-- 开启扫描 -->
       <context:component-scan base-package = "com.springmvc.firstmvc"></context:component-scan>    
       <!-- 配置处理器(Handle),映射/firstController请求 (Controller类),已由注解完成-->
       <!-- <bean name = "/firstController"/> -->
       <!-- 配置映射处理器(handlerMapping) 将处理器(Handle)的name作为url进行查找(Spirng4.0以后无需配置) -->
       <!-- 配置适配处理器(HandlerAdapter) 适配处理器会调用处理器(Handle)即FirstController类(Spirng4.0以后无需配置) -->
       <!-- 处理器会返回一个ModelAndView,适配处理器将返回的ModelAndView交给前端控制器去处理了 -->
       <!-- 前端控制器根据ModelAndView中的View选择一个视图解析器(ViewReslover) -->
       <!-- 前端控制器将Model(msg "hello SpringMVC")填充进视图解析器返回的视图,用户看到最后页面 -->
       <!-- 设置视图处理器及其前缀后缀 -->
       <bean id = "viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
           <property name="prefix" value = "/WEB-INF/jsp/"></property>
           <property name="suffix" value = ".jsp"></property>
       </bean>
       <!-- 视图处理器解析后会将视图传递给前端控制器,前端控制对View进行渲染(将模型数据填入视图) -->
       <!-- 渲染结果会返回客户端浏览器显示 -->
</beans>

 

WEB-INF/jsp/first.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    ${msg}
</body>
</html>

 

 

可以看到加载的是 springmvc-servlet.xml

 如果 firstController / 后面不是一位数字,或者 name 不等于 hcf 都会出现 404 页面。

 

完整结构:

 

 

 

参考资料:

SpringFramework/spring-framework-4.3.6.RELEASE/docs/spring-framework-reference/html/mvc.html

https://www.cnblogs.com/qq78292959/p/3760560.html 

Apache 中的 403 访问拒绝无法访问 ErrorDocument 403

Apache 中的 403 访问拒绝无法访问 ErrorDocument 403

如何解决Apache 中的 403 访问拒绝无法访问 ErrorDocument 403

我在 Apache 服务器中的 httpd.conf 处实施了一个全局 IP 块,该块显示了 403 错误文档中的禁止 IP,但无法访问 403 错误文档,因为禁止 IP 的访问再次被拒绝,因此它们无法访问通过 403 错误查看 403 错误文档。它说 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

  1. <Directory "${SRVROOT}/htdocs">
  2. Options FollowSymLinks
  3. AllowOverride None
  4. <RequireAll>
  5. Require all granted
  6. Include conf/banlist.conf
  7. </RequireAll>
  8. ErrorDocument 403 "/error403.PHP"
  9. </Directory>
  10. <Location />
  11. <RequireAll>
  12. Require all granted
  13. Include conf/banlist.conf
  14. </RequireAll>
  15. ErrorDocument 403 "/error403.PHP"
  16. </Location>

这是我在 httpd.conf 中的访问控制代码。我应该在哪里处理它以允许被禁止的IP访问403文档而不禁用全局IP块?

解决方法

要允许被禁止的 IP 访问 403 错误文档,您应该创建一个目录并为其配置不同的访问级别。首先创建 errorpages 目录并在 httpd.conf 中实现此代码。

  1. <Directory "${SRVROOT}/htdocs/errorpages">
  2. Require all granted
  3. </Directory>
  4. <Location /errorpages>
  5. Require all granted
  6. </Location>

此外,您需要将 ErrorDocument 403 "/error403.php" 更改为 ErrorDocument 403 "/errorpages/error403.php"

  1. <Directory "${SRVROOT}/htdocs">
  2. Options FollowSymLinks
  3. AllowOverride None
  4. <RequireAll>
  5. Require all granted
  6. Include conf/banlist.conf
  7. </RequireAll>
  8. ErrorDocument 403 "/errorpages/error403.php"
  9. </Directory>
  10. <Location />
  11. <RequireAll>
  12. Require all granted
  13. Include conf/banlist.conf
  14. </RequireAll>
  15. ErrorDocument 403 "/errorpages/error403.php"
  16. </Location>

然后他们可以看到403错误文档,但仍然不允许他们看到您服务器中的其他页面。

asp.net-mvc – ELMAH – MVC 3 – 403 – 禁止:访问被拒绝

asp.net-mvc – ELMAH – MVC 3 – 403 – 禁止:访问被拒绝

我已经安装 Elmah for MVC使用NuGet,我可以登录成功错误在db。
唯一的问题是,我无法访问/ elmah URL访问错误日志页面。

这里是我配置的一部分,如果我有任何配置错误,你能指出吗?

谢谢

错误

403 – Forbidden: Access is denied.
You do not have permission to view this directory or page using the credentials that you supplied.

在我的web.config:

<appSettings>
    <add key="webpages:Version" value="1.0.0.0" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="elmah.mvc.disableHandler" value="false" />
    <add key="elmah.mvc.disableHandleErrorFilter" value="false" />
    <add key="elmah.mvc.requiresAuthentication" value="true" />
    <add key="elmah.mvc.allowedRoles" value="Administrator" />
    <add key="elmah.mvc.route" value="elmah" />
  </appSettings>

在global.asax:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("elmah.axd");
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",// Route name
            "{controller}/{action}/{id}",// URL with parameters
            new { controller = "Home",action = "Index",id = UrlParameter.Optional } // Parameter defaults
        );
    }

解决方法

(这都是从文档/入门)

您不需要以下行:

routes.IgnoreRoute("elmah.axd");

下一行处理它。

您需要配置的所有内容都在您的web.config文件中。就像是:

<elmah>
  <security allowRemoteAccess="yes" />
  <errorLog type="Elmah.sqlErrorLog,Elmah" connectionStringName="MysqLConnString" />
</elmah>
<location path="elmah.axd">
  <system.web>
    <authorization>
      <allow roles="Administrator" />
      <deny users="*" />
    </authorization>
  </system.web>
</location>

应该让你去。

Git推送给出错误:HTTP 403 curl 22请求的URL返回错误:403 LimitedUploadSize

Git推送给出错误:HTTP 403 curl 22请求的URL返回错误:403 LimitedUploadSize

如何解决Git推送给出错误:HTTP 403 curl 22请求的URL返回错误:403 LimitedUploadSize

我推送了一个提交,但收到此错误。我不知道为什么昨天仍然可以使用

git -c diff.mnemonicprefix = false -c core.quotepath = false --no-optional-locks push -v --tags --set-upstream origin ...我的远程分支 POST git-receive-pack(343671字节)

致命:远端意外挂起

致命:远端意外挂起

错误:RPC失败; HTTP 403 curl 22请求的URL返回错误:403 LimitedUploadSize 推送到https:// .....我的远程URL

所有最新信息

已完成错误,请参见上文。

谢谢大家!

解决方法

是的,GitHub上的文件和存储库大小有一些硬性限制。

引用official docs:

警告文件大于50 MB

如果您尝试添加或更新 大于50 MB的文件,您将收到来自Git的警告。 所做的更改仍将成功推送到您的存储库,但是您 可以考虑删除提交以最大程度地降低性能影响。对于 有关更多信息,请参见“ Removing files from a repository''s history。”

大文件的阻止推送

GitHub阻止超过100次的推送 MB。

其他参考:

  • File and repository size limitations
  • New size limits for Git repositories and files as of Sept 2020

今天关于如何在 Java Spring MVC 中发出 403 错误springmvc错误处理的介绍到此结束,谢谢您的阅读,有关1.2 (Spring MVC 学习笔记) Spring MVC 核心类及注解、Apache 中的 403 访问拒绝无法访问 ErrorDocument 403、asp.net-mvc – ELMAH – MVC 3 – 403 – 禁止:访问被拒绝、Git推送给出错误:HTTP 403 curl 22请求的URL返回错误:403 LimitedUploadSize等更多相关知识的信息可以在本站进行查询。

本文标签: