Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JBOSS上的此URL不支持HTTP方法POST_Java_Azure_Jboss_Active Directory_Struts 1 - Fatal编程技术网

Java JBOSS上的此URL不支持HTTP方法POST

Java JBOSS上的此URL不支持HTTP方法POST,java,azure,jboss,active-directory,struts-1,Java,Azure,Jboss,Active Directory,Struts 1,我们必须为Struts-1上的一个遗留应用程序设置MS azure active directory身份验证,该应用程序将在JBOSS EAP-7上运行 基本设置如下所示。我们有一个名为index.html的欢迎文件,如下所示 <html> <head> <title>TITLE</title> </head> <FRAMESET border=0 name=fs_rep ROWS="18%,*"> <F

我们必须为Struts-1上的一个遗留应用程序设置MS azure active directory身份验证,该应用程序将在JBOSS EAP-7上运行

基本设置如下所示。我们有一个名为index.html的欢迎文件,如下所示

<html>
 <head>
  <title>TITLE</title>
 </head>
 <FRAMESET border=0 name=fs_rep ROWS="18%,*">
  <FRAME SRC="heading.html" NAME="HEADING">
  <FRAME SRC="logon.jsp" NAME="DISPLAY">
 </FRAMESET>
 <NOFRAMES>
  This browser does not support frames. The application cannot be displayed.
</NOFRAMES>
</html>

标题
此浏览器不支持框架。无法显示应用程序。
当应用程序启动时,用户看到登录页面,给出凭证,请求转到LoginAction类,该类执行LDAP验证

我们正在关注这个链接 用于设置MS AD授权

我们在web.xml中创建了一个基本过滤器,如下所示

<filter-name>BasicFilter</filter-name>
<url-pattern>/index.html</url-pattern>
BasicFilter
/index.html
此筛选器具有身份验证代码,并将用户重定向到Azure登录页面。我们已将azure中的“响应URL”指定为:

此设置在Weblogic server上运行良好,但当我尝试在JBOSS EAP-7上部署此设置时,它会将我们带到MS Azure注册页面,我们提供凭据,运行基本筛选器,最后在浏览器中显示“此URL不支持HTTP方法POST


我们走错路了吗?URL如何支持POST(仅在JBOSS中发生)

似乎
的HTTP方法
POST
。默认情况下,JBOSS不支持html
文件,这与其他servlet引擎不同

根据我的经验,我认为有一些方法可以解决这个问题

  • 这似乎是JBoss上的一个安全约束,可以通过尝试在项目的
    web.xml
    文件中设置以下配置来更改

    <security-constraint>    
      <display-name>Example Security Constraint</display-name>    
      <web-resource-collection>    
         <web-resource-name>Protected Area</web-resource-name>    
         <url-pattern>/index.html</url-pattern>   
         <http-method>GET</http-method>    
         <http-method>POST</http-method>  
      </web-resource-collection>
    </security-constraint> 
    
    
    示例安全约束
    保护区
    /index.html
    得到
    邮递
    
  • 作为解决方法,您可以尝试将
    index.html
    重命名为
    index.jsp
    。这将把您的HTML编译为在JBoss serlvet容器上运行的JSP,JSP总是使用
    service()
    方法,这将避免JBoss上的问题


  • 你救了我一天!!非常感谢。目前我采用第二种方法。工作很好。