Protección de recursos JAX-RS en sentido descendente
Puede proteger los recursos JAX-RS (Java™ API for RESTful Web Services) en sentido descendente configurando el método BasicAuth para autenticación y utilizando el manejador de seguridad LTPA de JAX-RS para sacar partido del inicio de sesión único para la autenticación de usuarios.
Antes de empezar
- Ha instalado su aplicación de JAX-RS en el servidor de aplicaciones.
- Ha habilitado la seguridad para la aplicación JAX-RS.
- Ha protegido las aplicaciones JAX-RS dentro del contenedor web configurando aplicaciones JAX-RS en sentido descendente para utilizar el método de autenticación básica (BasicAuth) para la autenticación de usuarios.
Acerca de esta tarea
Al componer recursos JAX-RS, se puede utilizar un nuevo manejador de seguridad JAX-RS de LTPA para realizar la autenticación sin problemas en las invocaciones de recursos en sentido descendente.
Cuando se invocan recursos JAX-RS de protección en sentido descendente, es necesaria la aplicación que llama para autenticar al recurso de destino. Si el recurso de destino en un servidor en sentido descendente utiliza el método BasicAuth para la seguridad, la aplicación que llama puede aprovechar las ventajas de inicio de sesión único (SSO) para los recursos JAX-RS. Si se utiliza el inicio de sesión único, un contexto autenticado se propaga a lo largo de las llamadas en sentido descendente. Puede utilizar el manejador de cliente de seguridad basado en LTPA para autenticarse en los recursos en sentido descendente que se distribuyen entre servidores.
Para ilustrar este caso práctico, supongamos que tiene dos servidores en la célula y que ha desplegado recursos JAX-RS en ambos de estos servidores. Suponga que de un recurso en server1 necesita invocar a otro recurso que esté desplegado en server2. Cuando los recursos de server2 estén protegidos con el método BasicAuth para autenticación, utilice el manejador de seguridad JAX-RS LTPA para sacar partido del inicio de sesión único y propagar sin interrupciones la autenticación de usuarios en llamadas en sentido descendente sin tener que proporcionar o gestionar identidades de usuario y contraseñas en la aplicación.

Siga estos pasos para configurar la autenticación de usuarios en un servidor en sentido descendente mediante el manejador de seguridad JAX-RS durante la compilación de la aplicación.
Procedimiento
Resultados
Ha definido recursos JAX-RS seguros de manera que, cuando se invoquen recursos en sentido descendente, pueda utilizar el inicio de sesión único y propagar sin interrupciones la autenticación en llamadas en sentido descendente sin tener que proporcionar ni gestionar identidades de usuario y contraseñas en la aplicación.
Ejemplo
import org.apache.wink.client.Resource;
import org.apache.wink.client.RestClient;
import org.apache.wink.client.ClientConfig;
import org.apache.wink.client.handlers.LtpaAuthSecurityHandler;
ClientConfig config = new ClientConfig();
LtpaAuthSecurityHandler secHandler = new LtpaAuthSecurityHandler();
// Añadir este manejador de seguridad a la cadena de manejadores.
config.handlers(secHandler);
// Crear la instancia de cliente REST.
RestClient client = new RestClient(config);
// Crear la instancia de recurso con la que desea interactuar.
// Sustituir un valor que represente la dirección del recurso
resource =
client.resource("http://localhost:8080/path/to/resource");
// Ahora está preparado para empezar a llamar al recurso.
ClientBuilder cb = ClientBuilder.newBuilder();
Client c = cb.build();
c.property("com.ibm.ws.jaxrs.client.ltpa.handler", "true");
String res = "";
res = c.target("http://" + serverIP + ":" + serverPort + "/" + moduleName + "/rest/ltpa")
.request()
c.close();
return res;