2013-03-25 3 views
4

Я разрабатываю веб-приложение с использованием (JSP + Servlet), и я использовал Tomcat 7.0.33 как web container.защищенное паролем приложение в tomcat

Так что мое требование состоит в том, чтобы каждое приложение в tomcat было password защищено как manager application в tomcat.

До сих пор я сделал следующее:

server.xml

<Realm className="org.apache.catalina.realm.MemoryRealm" /> 

-users.xml кот

<tomcat-users> 
    <role rolename="tomcat"/> 
    <role rolename="manager-gui"/> 
    <role rolename="role1" /> 

    <user username="tomcat" password="tomcat" roles="role1,tomcat,manager-gui"/> 
    <user username="role1" password="tomcat" roles="role1"/> 
</tomcat-users> 

web.xml

<security-role> 
    <role-name>role1</role-name> 
</security-role> 
<security-role> 
    <role-name>tomcat</role-name> 
</security-role> 

<security-constraint> 
<web-resource-collection> 
    <web-resource-name>webappname</web-resource-name> 
    <url-pattern>/*</url-pattern> 
</web-resource-collection> 
<auth-constraint> 
    <role-name>role1</role-name> 
    <role-name>tomcat</role-name> 
</auth-constraint> 
</security-constraint> 

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

Он отлично работает, когда кто-нибудь открывает приложение по пути приложения (он запрашивает имя пользователя & пароля, и приложение принимает любого из role1 или tomcat для аутентификации).

Но проблема в том, что если я вхожу в систему как пользователь tomcat, у которого есть все роли, и когда отображается экран менеджера, в котором перечислены все приложения, развернутые на сервере, тогда, если я попытаюсь открыть mywebapplication, запрашивает имя пользователя и пароль.

Мой вопрос в том, что если я назначил все roles пользователю tomcat, то почему он запрашивает пароль, если у меня есть логин как tomcat? есть ли способ избежать этого?

Заранее спасибо.

ответ

2
<login-config> 
<auth-method>BASIC</auth-method> 
<realm-name>webappname</realm-name> 
</login-config> 

Основные полномочия Auth организованы в «Security Realms». Если вы дадите всем своим приложениям разные имена Realm-Names, браузер предложит их каждому. Попробуйте использовать одно и то же имя для всех (если это то, что вы хотите).

+0

спасибо, это сработало – Bhushan

Смежные вопросы