2014-10-31 2 views
0

Tomcat의 프런트 엔드로 Apache를 사용하는 Java 웹 응용 프로그램이 있습니다. \ Program 파일 (x 86) \ 아파치 \ conf 디렉토리 : 나는 사용자가 C에서 파일을아파치의 기본 인증

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name> 
    </web-resource-name> 
    <url-pattern>/secure/*</url-pattern> 
    </web-resource-collection> 
    <user-data-constraint> 
    <transport-guarantee>NONE</transport-guarantee> 
</user-data-constraint> 
<auth-constraint> 
    <role-name>user</role-name> 
</auth-constraint> 
</security-constraint> 
<login-config> 
    <auth-method>BASIC</auth-method> 
</login-config> 

지금 내가 설정에 내가 만든

아파치

에이 구성을 원하는 web.xml 파일에 기본 인증 구성이 사용자 이름/비밀번호를 추가했습니다. 나는 그것이 인증을하라는 메시지를 표시하지 복용량 브라우저 http://example.com/app/secure와 응용 프로그램을 열 때

나는 httpd.conf 파일

<Location "/secure/*"> 
    AuthUserFile conf/users 
    AuthName "This is a protected area" 
    AuthType Basic 
    Require valid-user 
</Location> 

이 줄을 추가합니다. 무슨 일로 여기 잘못 먹었습니까?

+0

(a) apache passwd 유틸리티를 사용하여 사용자 파일을 만들었습니까? (b) 설정을 새로 고침하기 위해 아파치를 다시 시작했는지, 신호를 보내셨습니까? (c)이 아파치에서 실행중인 가상 서버가 있습니까? – RealSkeptic

+0

예 passwd 유틸리티를 사용하고 아파치를 다시 시작합니다. 가상 서버가 없습니다 – user1187329

답변

0

이 지침은해야 다음 *없이

<Location "/app/secure/"> 

합니다. Location 지시문은 해당 URL과 그 아래의 모든 항목 (/app/secure/myServlet, /app/secure/more/otherServlet 등)에 자동으로 적용됩니다.

위치에서 패턴 일치를 원한다면 LocationMatch을 사용해야하지만 불필요하다고 생각합니다.

Location 문자열은 도메인 뒤의 슬래시에서 시작하는 전체 경로 여야합니다. 따라서 도메인이 http://example.com/app/secure/ 인 경우 Location/secure/이 아니라 /app/secure/이됩니다. 당신이 실제로 app/secure보다는 app/secure/와 응용 프로그램에 액세스하는 경우

또는, 당신은 마지막 슬래시 제거해야합니다 :

<Location "/app/secure"> 

/app/secure/ 일치 /app/secure/something을하지만 /app/secure 일치하지 않습니다. /app/secure/app/secure/something과 일치하지만 /app/secure 그 자체입니다.

+0

응답 해 주셔서 감사합니다. 그러나 여전히 작동하지 않습니다. – user1187329

+0

죄송합니다. 이제 질문에서 마지막 문장을 보았습니다. 정말로/app/secure /'이어야한다는 것을 알았습니다. 내 대답 업데이트 중. – RealSkeptic

+0

고맙습니다. – user1187329