2012-04-30 30 views
5

estoy tratando de configurar un reino simple de archivos en GlassFish 3.1 siguiendo ese tutorial:¿Cómo se configura el reino de archivos de seguridad glassfish 3.1 usando Netbeans 7.1?

Hice todo lo que dice, pero no funciona, cuando viajo a la página de administración no no veo la mensaje emergente pidiendo credenciales. Esto es lo que hice:

1- Crear un reino archivo: enter image description here

2- Luego he creado un usuario con el botón de gestionar usuarios enter image description here

3-I creó un archivo glassfish-web.xml utilizando la interfaz gráfica en lugar de los editores enter image description here

4-Luego de la misma manera que configuran el web.xml enter image description here Lo siento si esta última imagen es un poco difícil de ver, se puede acercar.

Cuando uso la URL para viajar a /admin.xhtml nada me impide ver el contenido de la página, esto significa que algo no está configurado correctamente. No sé lo que me estoy perdiendo. ¿Podría alguien ayudarme a encontrar la razón por la cual no puedo hacer que esta sencilla tarea de seguridad funcione?

actualización

Aquí mi fuente de web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
    <context-param> 
     <param-name>javax.faces.PROJECT_STAGE</param-name> 
     <param-value>Development</param-value> 
    </context-param> 
    <servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>/faces/*</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>faces/index.xhtml</welcome-file> 
    </welcome-file-list> 
    <security-constraint> 
     <display-name>Constraint1</display-name> 
     <web-resource-collection> 
      <web-resource-name>allowed</web-resource-name> 
      <description/> 
      <url-pattern>/admin.xhtml</url-pattern> 
     </web-resource-collection> 
     <auth-constraint> 
      <description/> 
      <role-name>administrator</role-name> 
     </auth-constraint> 
    </security-constraint> 
    <login-config> 
     <auth-method>BASIC</auth-method> 
     <realm-name>file</realm-name> 
    </login-config> 
    <security-role> 
     <description/> 
     <role-name>administrator</role-name> 
    </security-role> 
</web-app> 

y glassfish-web.xml fuente

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> 
<glassfish-web-app error-url=""> 
    <security-role-mapping> 
    <role-name>administrator</role-name> 
    <group-name>admin</group-name> 
    </security-role-mapping> 
    <class-loader delegate="true"/> 
    <jsp-config> 
    <property name="keepgenerated" value="true"> 
     <description>Keep a copy of the generated servlet class' java code.</description> 
    </property> 
    </jsp-config> 
</glassfish-web-app> 

Básicamente lo que quiero hacer es tener 2 tipos de usuarios. Los invitados que solo exploran index.xhtml y no tienen credenciales y los administradores que tienen sus credenciales almacenadas en el archivo y se les solicitan cuando van a admin.xhtml

No entiendo lo que falta. ¿Debo crear privilegios especiales para los usuarios invitados que dicen que pueden ver index.xhtml?

+0

No es posible que esté utilizando Netbeans 3.1 se puede? Uber anticuado Netbeans 5 salió hace más de 6 años. – jahroy

+1

@jahroy Hehe ... ups cometí un error en el título de la pregunta :) Claro que uso Netbeans 7.1 – sfrj

+0

¿Intentó reiniciar glassfish y desplegar/desplegar su aplicación? Si eso no ayuda, consulte detenidamente el registro de inicio de Glassfish para ver si hay algún mensaje relacionado con su reino (al menos debería mencionarse si Glassfish no lo está recogiendo).Puede ser útil si publicó el origen de web.xml. – Eelke

Respuesta

6

Suponiendo que tu admin.xhtml es una página JSF, porque tu mapeo JSF es/faces/* lo estás abriendo a través de una URL como http: // localhost: 8080/[Project /] faces/admin.xhtml. Esto no coincide con /admin.xhtml

Reemplazar:

<url-pattern>/admin.xhtml</url-pattern> 

con

<url-pattern>/faces/admin.xhtml</url-pattern> 
+0

Sí, ese fue el error. Muchas gracias. – sfrj

Cuestiones relacionadas