martes, 7 de julio de 2015

Seguridad en el backend: User Roles

Muchachos, estoy atacando el asunto de seguridad en la Rest API para dejar todo bien implementado antes de empezar a agregar tareas críticas. Algo importante que tienen que saber es que se creó la famosa entidad UserRole (rol del usuario), identificado por un id y una descripción. Por ahora, tenemos creados 5 roles definidos:
1- Administrator
2- Doctor
3- Patient
4- Researcher
5- Insurance_employee (empleado de las obras sociales)

Para que tengan en cuenta, cuando manden sus json de regietro, en el sector usuario tienen que agregar lo siguiente en el objeto user (tanto de médico como de paciente):

"user":
{
"id":10,
"username":"frantaman",
"password":"mimi",
"state":
{"id":1,"description":"Pending"},
"role":
{"id:2, "description":"Doctor"}
}

En el caso que sea un paciente será 2 Patient, y así sucesivamente.

Prometo no joderlos mucho tiempo más para que cambien sus implementaciones jaja. pero es mejor atacar esto desde ahora.

Saludos,
Franqui

domingo, 5 de julio de 2015

lunes, 22 de junio de 2015

Definición de Rest a la fecha

Muchachos estos son los servicios que está ofreciendo la rest api de momento:

1) Verificar si un username ya existe:
http://bismara.elasticbeanstalk.com/rest/users/verifyUsername?username=<username>

Devuelve {'state':'ok'} si existe, {'state':'denied'} en caso contrario.

2) Verificar si un email ya fue usado por algún médico:
http://bismara.elasticbeanstalk.com/rest/doctors/verifyEmail?email=<email>

Devuelve {'state':'ok'} si ya está usado, {'state':'denied'} en caso contrario.

3) Obtener un doctor por username y password:
http://bismara.elasticbeanstalk.com/rest/doctors/getDoctor?username=<username>&password=<password>

Devuelve un json de doctor. Un ejemplo es el siguiente:

{"id":10,"firstName":"Francisco","lastName":"Tamantini","phone":"3515478965","email":"franco.salo@gmail.com","registrationNumber":54876,"user":{"id":10,"username":"frantaman","password":"mimi","state":{"id":1,"description":"Pending"}}}

(Para hacer el login hay que usar esta y despues verificar que el id de state sea 2 (Registered)).

4) Para registrar un nuevo doctor (POST):
http://bismara.elasticbeanstalk.com/rest/doctors/new

La data tiene que ser un JSON como el ejemplo de arriba. Sin los id de user y de doctor, así los crea. En caso que se quiera actualizar se mandan los id. Es el mismo servicio para cargar/actualizar.

5) Para confirmar una cuenta y pasar a estado "Registered":
http://bismara.elasticbeanstalk.com/rest/doctors/confirm?id=<Id del usuario del médico>&token=<token asociado>

También cree dos mails: no.reply.bismara@gmail.com y bismara.staff@gmail.com, los dos con el password de siempre.

Está todo pusheado y javadoqueado.

Saludos,
Franco

Seguridad con Jersey

En esta página se puede ver como implementar seguridad y Oauth con Jersey para acceder a la Rest API.

https://jersey.java.net/documentation/latest/security.html#d0e12342

Saludos de su ex Scrum Master

miércoles, 3 de junio de 2015

Nuevo entorno de despliegue

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Java.html

Allí en ese link pueden ver com nos vamos a manejar de ahora en más con el despliegue. Peguenle una mirada. De todos modos, hoy en la planning les cuento un poco más de qué se trata. Pero nos va a solucionar miles de problemas.

Saludos de su buen Scrum Master