2012-09-24 16 views
11

Supongamos que tengo una aplicación de servidor Java, que implementa algunos servicios web. Supongamos también que puedo autenticar usuarios de aplicaciones.¿Cómo limitar el uso de servicios web en la aplicación Java?

Ahora me gustaría agregar algunos límites de por usuario al uso del servicio: p. límite de velocidad (solicitudes por segundo), tamaño máximo de solicitud, etc.

¿Hay alguna biblioteca "lista para usar" en Java para hacer eso?

+1

Solo para aclarar: ¿quiere decir límites basados ​​en la identidad (por ejemplo, el usuario X está autorizado a llamar al servicio solo 100 veces por minuto)? – home

+0

Sí, me refiero a límites basados ​​en la identidad. – Michael

Respuesta

1

se puede hacer eso con Apache CXF mediante la configuración de un interceptor. Este page tiene un ejemplo de la configuración de alto nivel. Este page tiene detalles sobre los interceptores. Puede obtener todo lo elegante que desee con su validación. No sé de forma directa cómo obtener el usuario autenticado.

1

Si tiene un servicio de autenticación/autorización por el que pasan todas sus llamadas, se puede incorporar esta restricción por usuario. No conozco un marco que le permita prescindir de una codificación personalizada.

Idealmente, este tipo de lógica se configura mejor fuera del servicio en sí. Sé que camel ofrece una aceleración integrada para varias solicitudes. Puede definir su propia política de aceleración para asignar el número de solicitudes por usuario.

1

Necesita crear una clase de interceptor simple. Hay un método onPreExecute() donde puedes poner tu cheque personalizado. Lo he usado con Spring.

Cuestiones relacionadas