Autenticação pelo Tomcat

Estou estudando o livro da Kathy Sierra Head-First Servlets e JSP e há dois dias estou tentando desenvolver um exemplo de autenticação já procurei na internet e tem um exemplo parecido de configuração dos arquivos mas não consigo chamar aquele formulário de autenticação padrão do browser, estou usando modo BASIC no login-config, segue o código para saber se estou fazendo algo errado.

No tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="Guest"/>
  <role rolename="Adm"/>
  <role rolename="Member"/>
  <user username="Annie" password="admin"  roles="Adm,Member,Guest"/>
  <user username="Diane" password="coder" roles="Member,Guest"/>
  <user username="Ted" password="newBie" roles="Guest"/>
</tomcat-users>

No web.xml da minha aplicação chamada “Beer”

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

<servlet>
  <servlet-name>teste</servlet-name>
  <servlet-class>AddRecipe.servletTeste</servlet-class> 
</servlet>
<servlet-mapping>
  <servlet-name>teste</servlet-name>
  <url-pattern>/t.do</url-pattern>
</servlet-mapping>

<security-constraint>
  <web-resource-collection>
    <web-resource-name>UpdateRecipes</web-resource-name>
    <url-pattern>/Beer/*</url-pattern>
    <http-method>GET</http-method> 
  </web-resource-collection>
  <auth-constraint>
    <role-name>Admin</role-name>
  </auth-constraint>
</security-constraint>

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

  <security-role>
    <role-name>Adm</role-name>
  </security-role>

</web-app>

PS: o nome da aplicação é Beer, e a estrutura de pastas é a seguinte

->webapps
    ->Beer (chamaServlet.jsp que dispara o servlet via get) 
          ->WEB-INF (com web.xml)
               ->classes
                      ->AppRecipe (servlet.class)

PS: A única coisa que não consigo fazer é chamar o form de autenticação default do browser.

*Editado - Lembre-se de usar a tag CODE em seus códigos.

Não sei se é exatamente isso, mas:

[quote]<auth-constraint>
<role-name>Admin</role-name>
</auth-constraint>
[/quote]

Não existe esse role, “Admin”. Deveria ser “Adm”.

[quote]<security-role>
<role-name>Adm</role-name>
</security-role> [/quote]

Também acho que você deveria declarar os outros roles aí. “Member” e “Guest”.

Salve,

cara tente retirar o trecho de código abaixo…

&lt;security-role&gt; &lt;role-name&gt;Adm&lt;/role-name&gt; &lt;/security-role&gt;

Mude de basic para Digest e tire <http-method>GET</http-method> e tente novamente.

:okok:

Realmente, eu mexi na configuração do código e o treco começou a funcionar.

Valeu pela ajuda pessoal!!!