2017-01-10 1 views
0

Struts-1에있는 레거시 애플리케이션 중 하나 인 MS Azure Active Directory 인증을 설정해야 JBoss EAP-7에서 실행됩니다.HTTP 메서드 POST는 JBOSS의 URL에서 지원되지 않습니다

기본 설정은 다음과 같습니다. 아래와 같이 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> 

응용 프로그램이 시작되면 사용자에게 로그인 페이지가 표시되고 자격 증명이 제공되며 요청은 LDAP 확인을 수행하는 LoginAction 클래스로 이동합니다.

다음 링크는 MS AD Authetication 설정을위한 https://docs.microsoft.com/en-us/azure/active-directory/active-directory-devquickstarts-webapp-java입니다.

우리는

<filter-name>BasicFilter</filter-name> 
<url-pattern>/index.html</url-pattern> 

이 필터는 인증 코드를 가지고 있으며, 푸른 로그인 페이지로 사용자를 리디렉션으로 web.xml에 기본 필터를 만들었습니다. azure에 "Response URL"을 다음과 같이 입력했습니다 : http://localhost:8001/MyApp/index.html

이 설정은 Weblogic 서버에서 제대로 작동하지만 JBoss EAP-7에이 URL을 배포하려고하면 MS Azure 가입 페이지로 연결됩니다. 자격 증명을 입력하면 기본 필터가 실행되고 마지막으로 "HTTP 메서드 POST는이 URL에서 지원되지 않습니다."이 브라우저에 표시됩니다.

잘못된 경로에 있습니까? URL에 POST가 어떻게 지원되는지 (JBOSS에서만 발생)

답변

1

.html에 대한 HTTP 방법 POST은 다른 서블릿 엔진과 다른 JBoss에서 기본적으로 지원되지 않는 것으로 보입니다.

내 경험에 의하면, 문제를 해결할 방법이 있다고 생각합니다.

  1. 이 프로젝트의 web.xml 파일에 아래의 구성을 설정하는 시도를 통해 변경 될 수 있습니다 JBoss에서의 보안 제약 조건처럼 보인다.

    <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> 
    
  2. 주위의 작품으로, 당신은 당신의 index.htmlindex.jsp에 이름을 바꿀 수 있습니다. 이렇게하면 JBoss serlvet 컨테이너에서 실행되는 JSP로 HTML을 컴파일하고 JSP는 항상 service() 메서드를 사용하므로 JBoss에서 문제가 발생하지 않습니다.

+0

내 하루를 저장했습니다. 고맙습니다!! 나는 지금 제 2의 접근 방식으로 갔다. 잘 작동합니다. – pranav

관련 문제