Weblogic 错误 403--禁止

Posted

技术标签:

【中文标题】Weblogic 错误 403--禁止【英文标题】:Weblogic Error 403--Forbidden 【发布时间】:2012-06-17 01:46:09 【问题描述】:

我正在尝试在 weblogic 上运行 Java EE 应用程序。该应用程序在 Tomcat 上运行良好。我已经自定义了 war 文件以包含 weblogic.xml。该文件包含以下代码:-

<container-descriptor>
    <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
</container-descriptor>

我还更改了应用程序属性文件中的配置,以反映容器正在侦听的端口。 服务器端口=7001 server.modjk.enabled=false

我的 web.xml 文件包含以下代码:-

<servlet>
    <servlet-name>olatservlet</servlet-name>
    <servlet-class>org.olat.core.servlets.OLATServlet</servlet-class>

    <!-- Set the load order -->
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>olatservlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>olatservlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

当我最初在 weblogic 11g 上运行 war 文件时,我遇到了一个空指针异常。但是,当我从 lib 文件夹中删除 XerceImpl.jar 时,我可以部署该文件。现在我可以成功部署应用程序了。我将weblogic中的上下文根命名为war文件的名称。当我尝试在其测试选项卡中打开 weblogic 生成的链接时,我收到以下错误:-

错误 403--禁止

来自 RFC 2068 超文本传输​​协议 -- HTTP/1.1:

10.4.4 403 禁止

服务器理解请求,但拒绝执行。授权将无济于事,并且不应重复请求。如果请求方法不是 HEAD 并且服务器希望公开请求未完成的原因,它应该在实体中描述拒绝的原因。当服务器不希望确切地显示请求被拒绝的原因或没有其他响应适用时,通常使用此状态代码。

我想知道是否有人可以告诉我如何解决这个问题。

【问题讨论】:

可能晚了,但是,你看到安全日志和服务器日志了吗?当您尝试访问应用程序时,您是否在这些文件中遇到异常? 这可能与问题无关,但对于那些在尝试打开网站时来自谷歌的人来说:在链接标题中添加 HTTPS:// 对我的情况有所帮助。访问航班网站时出现此错误。也许可以帮助来自 Google 的其他人解决同样的问题。 【参考方案1】:

我知道现在回答这个问题已经很晚了。但我以我的小知识回答,希望它会帮助那里的人。

你应该在web.xml文件中的welcome-file-list中定义起始页面。例如,如果client.jsp是你运行项目时要显示的页面,那么welcome-file-list中的第一行web.xml 文件应该是

<welcome-file-list>
    <welcome-file>client.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
 </welcome-file-list>

【讨论】:

我可以解决我编辑 web.xml 文件的问题。在我的例子中是一个 jsf 配置。 &lt;servlet&gt;&lt;br&gt; &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt; &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt; &lt;url-pattern&gt;*.xx&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; 读完这篇文章后,我才意识到我的web.xml 中缺少&lt;welcome-file-list&gt;。我添加到它并修复了Error 403--Forbidden 错误。很有帮助。【参考方案2】:

我知道这已经很晚了,但我也遇到了同样的问题,在谷歌搜索之后,我发现了原因,我决定只为可能遇到同样问题的其他人发布它。这个网页给了我提示:

Error 403 explained

默认情况下,WebLogic 会禁用目录浏览,因此如果您有一个以 index.html 作为主页的网站(例如 example.com)并键入

http://localhost:7001/example.com, 

默认情况下,weblogic 不会自动为您检索主页。您需要输入完整路径,即

http://localhost:7001/example.com/index.html.

无论哪种方式,您都需要在 weblogic 中启用目录浏览。不管怎样,这就是发生在我身上的事。

【讨论】:

【参考方案3】:

如果您错过在 weblogic.xml 中添加相应的安全配置,您将收到“403 Forbidden。服务器理解请求,但拒绝执行。”错误。

因此,请确保除了使用“security-constraint”、“login-config”和“security-role”设置,您在 weblogic.xml 中也有“security-role-assignment”配置,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.8/weblogic-web-app.xsd">
     <wls:weblogic-version>12.2.1</wls:weblogic-version>
     <wls:context-root>SomeApp</wls:context-root>
     ***************
     ***************
     <wls:security-role-assignment>
         <wls:role-name>someGroupeDefinedInWebLogicServer</wls:role-name>
         <wls:principal-name>someUserDefinedInWebLogicServer</wls:principal-name>
     </wls:security-role-assignment>
     ***************
     ***************
</wls:weblogic-web-app>

希望,这有帮助。

【讨论】:

【参考方案4】:

我创建的服务提供商之一遇到了同样的问题。

我试图通过我的网络浏览器访问它,但我无法找到出现此错误消息的原因,直到我理解服务器确实理解了请求但为了让您获得响应,您必须指定正确的格式(或媒体类型)才能读取它,然后服务器会给你响应。

总而言之,服务提供商在我请求“application/html”时提供了“application/xml”响应直到我构建了自己的client consumer,它期待一个“application/xml”,然后服务器接受回复响应。

【讨论】:

【参考方案5】:

这可能与问题无关,但对于那些在尝试打开网站时来自谷歌的人来说:在链接的标题中添加 HTTPS:// 对我来说很有帮助。访问航班网站时出现此错误。也许可以帮助来自谷歌的其他人解决同样的问题。

【讨论】:

【参考方案6】:

能否请您检查一下您的web.xml文件,不遵循xml语法,表示有效的xml文件,即使是像额外的这样的小错误也会导致这种问题(我也遇到过)

【讨论】:

我检查了我的 xml 文件,但找不到任何语法错误。此外,该代码在 Tomcat 中运行良好。【参考方案7】:

您可以在 web.xml 文件的末尾添加此代码

<welcome-file-list>
    <welcome-file>faces/my_page.jspx</welcome-file>
</welcome-file-list>

或者,如果您使用的是 JDeveloper,您可以转到概览选项卡、页面和欢迎文件中,将路由添加到您希望默认打开的页面。 此外,您应该在页面名称之前添加“faces/”,因为这是您创建的页面的默认路由。

【讨论】:

以上是关于Weblogic 错误 403--禁止的主要内容,如果未能解决你的问题,请参考以下文章

Ladon插件实战 Weblogic CVE-2018-2894

weblogic配置数据源-在处理请求时出现意外的异常错误

weblogic部署提示错误空指针

在intellij 上用weblogic部署项目出现错误,大家帮我看看!谢谢!

Weblogic 错误 - 无法初始化类 weblogic.jndi.Environment

weblogic 集群 中 一个域下一个服务 启动报错。错误代码如下,请帮忙