Estoy bastante desesperado, porque creo que debe haber una solución fácil para mi problema, pero estoy buscando – sin éxito alguno.

Estoy usando un territorio personalizado en Glassfish 3.1.1. Esta costumbre reino (implementa AppservPasswordLoginModuleInterface) toma un token de seguridad de la solicitud HTTPS, valida el token de seguridad y, a continuación, devuelve al usuario Glassfish.

El problema es que el token de seguridad no contiene ninguno de los grupos, lo que significa que el método public String[] getGroupsList() o la costumbre reino devuelve una lista vacía (correctamente, porque no hay papeles en el token de seguridad).

Que dijo, me gustaría tener una seguridad restricción de que sólo se validan los usuarios pueden iniciar sesión. Sé que se puede utilizar la siguiente restricción en web.xml:

<security-constraint>
  <web-resource-collection>
    <web-resource-name>mywebapp</web-resource-name>
    <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <auth-constraint>
    <role-name>Users</role-name>
  </auth-constraint>
</security-constraint>

Pero porque no tengo ninguno de los grupos, no puedo mapa de grupos a las funciones, y por lo tanto no puedo usar el auth-restricción con role-name.

Hay una manera en web.xml para definir que sólo los usuarios autenticados son permitidos, ignorando en qué papel están y sin tener en cuenta si están en ningún papel en absoluto.

Hay un par de soluciones que no puedo aplicar:

  • No puedo cambiar el subyacente LDAP para incluir los roles, porque el esquema LDAP y la forma en que los usuarios de LDAP se asignan a los tokens de seguridad fuera de nuestro alcance.
  • Tengo que usar el actual territorio personalizado controlador, no puedo reemplazarlo con uno de mis propias que simplemente devuelve un grupo predeterminado. Hice trate de una vez, y funcionó. Pero no puedo sustituir el actual territorio personalizado con mi propia debido a que el territorio personalizado debe ser genérico.

Pero realmente creo que debería haber una forma en web.xml sólo para decir: Ignorar todos los grupos y roles, solo quiero que un usuario autenticado?

Cualquier ayuda se agradece.

OriginalEl autor msaladin | 2012-01-11

1 Comentario

  1. 17

    Bastante vieja, pero para aquellos que buscan una respuesta, puede utilizar una * nombre de rol:

    <auth-constraint>
        <role-name>*</role-name>
    </auth-constraint>

    Este tipo conseguido resolverlo.

    No funciona en Weblogic 10.3.4.
    Trabaja en WF10.1.0. No olvides poner también en <seguridad-función/> <role-name>*</role-name> (de lo contrario, si el * es sólo en <auth-restricción/>, esto no funciona).

    OriginalEl autor Will

Dejar respuesta

Please enter your comment!
Please enter your name here