...
Pour intégrer le badgeage de cartes dans une de vos applications (application de "métier" devant supporter le "badgeage"), vous devez donc proposer l'implémentation de ce Web Service.
...
| Bloc de code | ||
|---|---|---|
| ||
@RequestMapping(value = "/getLocations", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
@ResponseBody
public List<String> getLocations(@RequestParam String eppn) {
List<String> listSalles = new ArrayList<String>();
listSalles.add("Salle de test");
return listSalles;
} |
Exemple d'appel avec curl :
| Bloc de code |
|---|
curl https://mon-appli-metier.univ-rouen.fr/nfc-ws/getLocations?eppn=badgeur@univ-rouen.fr |
Exemple de retour :
| Bloc de code |
|---|
["Inscriptions Test 1", "Inscriptions Test 2"] |
isTagable
La fonction isTagable doit permettre de déterminer si un badge est valide pour le lieu donné. Elle prend doit prendre en entrée un objet « Taglog » contenant au moins eppn et location.
...
| Bloc de code | ||
|---|---|---|
| ||
@RequestMapping(value = "/isTagable", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<String> eppnCheck(@RequestBody EsupNfcTagLog esupNfcTagLog) {
if(Math.random() <= 0.5) {
return new ResponseEntity<String>("OK", responseHeaders, HttpStatus.OK);
} else {
return new ResponseEntity<String>("Carte invalide", new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR);
}
} |
Exemple d'appel avec curl :
| Bloc de code |
|---|
curl -v -H "Content-Type: application/json" -d '{"eppn":"toto@univ-rouen.fr", "location":"Inscriptions Test 1"}' https://mon-appli-metier.univ-rouen.fr/nfc-ws/isTagable |
Exemple de retour (erreur 500 ici : le badgeage n'est pas possible) :
| Bloc de code |
|---|
* About to connect() to mon-appli-metier.univ-rouen.fr port 443 (#0)
* Trying xxxxxxxxxxx..
* Connected to mon-appli-metier.univ-rouen.fr (10.0.128.31) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
* subject: CN=*.univ-rouen.fr,O=Université de Rouen,L=Mont-Saint-Aignan,ST=Seine-Maritime,C=FR
* start date: mai 25 00:00:00 2016 GMT
* expire date: mai 30 12:00:00 2019 GMT
* common name: *.univ-rouen.fr
* issuer: CN=TERENA SSL CA 3,O=TERENA,L=Amsterdam,ST=Noord-Holland,C=NL
> POST /nfc-ws/isTagable HTTP/1.1
> User-Agent: curl/7.29.0
> Host: mon-appli-metier.univ-rouen.fr
> Accept: */*
> Content-Type: application/json
> Content-Length: 65
>
* upload completely sent off: 65 out of 65 bytes
< HTTP/1.1 500 Erreur Interne de Servlet
< Date: Tue, 23 May 2017 10:17:57 GMT
< Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips
< Content-Type: text/plain;charset=ISO-8859-1
< Content-Length: 15
< Connection: close
<
* Closing connection 0
Carte en cours |
validateTag
Cette fonction valide le badgeage et déclenche un traitement metier. ll doit prendre en entrée un objet « Taglog » contenant au moins eppn et location. Elle retourne un statut http 200 si le traitement s'est bien déroulé ou une erreur http 500 dans le cas contraire.
...