2010-12-09 3 views
7

내가 톰캣 6.0에서 상황에 맞는 특정 보안 영역을 얻기 위해 노력하고 있어요,하지만 난 Tomcat을 시작할 때 다음과 같은 오류 얻을 구성 :문맥 특정 톰캣 보안 영역

09-Dec-2010 16:12:40 org.apache.catalina.startup.ContextConfig validateSecurityRoles 
INFO: WARNING: Security role name myrole used in an <auth-constraint> without being defined in a <security-role> 

나는 다음의 context.xml을 만들었을 파일 :

<Context debug="0" reloadable="true"> 

    <Resource name="MyUserDatabase" 
      type="org.apache.catalina.UserDatabase" 
      description="User database that can be updated and saved" 
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory" 
      pathname="conf/my-users.xml" /> 

    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 
     resourceName="MyUserDatabase"/> 

</Context> 

파일 생성 : 내-users.xml에서 내가 WEB-INF/conf의 아래에 배치 한 다음이 포함

<tomcat-users> 
    <role rolename="myrole"/> 
    <user username="test" password="changeit" roles="myrole" /> 
</tomcat-users> 
을 내 web.xml 파일에

추가 다음 줄 :

<web-app ...> 
    ... 
    <security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Entire Application</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>myrole</role-name> 
    </auth-constraint> 
    </security-constraint> 

    <login-config> 
    <auth-method>BASIC</auth-method> 
    </login-config> 
    ... 
</web-app> 

그러나 내가 conf의/내-users.xml 파일을 넣어 어디든지 오류를 얻을 것으로 보인다. 경로명에 명시 적 PATH를 지정해야합니까, 아니면 어딘가와 관련이 있습니까? 이상적으로는 WAR 파일의 일부로 패키징하고 싶습니다.

아이디어가 있으십니까?

답변

4

나는 당신이 역할을 정의하기 위해 당신의 web.xml에

<security-role> 
    <role-name>myrole</role-name> 
</security-role> 

에 다음이 필요합니다 생각합니다. 또한, 로그인 - 구성에서 영역을 참조해야한다고 생각합니다.

<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>MyUserDatabase</realm-name> 
</login-config> 

또는 그와 비슷한 것입니다.

+0

안녕하세요. stjohnroe, 확실히 도움이되었고 시작 오류가 해결되었지만 Tomcat이 내 context.xml 파일을 완전히 무시하고있는 것으로 보입니다. < 역할을 추가하면 rolename = "myrole"/ > < 사용자 이름 = "test"password = "changeit"roles = "myrole"/ >을 $ catalina.home/conf/tomcat-users.xml에 추가하면 작동하지만 사용자 정의 tomcat-users 파일을 원합니다. 어떤 아이디어 나 두 영역을 가질 수 없습니까? –

+0

별도의 영역으로 경로 및 resourceName/name 속성을 변경하여이 영역을 만들면 별도의 영역으로 참조 할 수 있습니다. – stjohnroe

+0

기본 인증서를 사용하지 마십시오. http://stackoverflow.com/questions/2180206/how-to-force-jetty-to-ask-for-credentials-after-invalidating-the-session –

0

보안 역할을 정의한 Tomcat 구성 디렉토리의 tomcat-users.xml 파일을 원하는 예제로보십시오.

또한 안내를 위해 다음 article을 참조하십시오.