IDM, EJBCA, SPML... et Groovy
29 août 2008 dans Développement
Bruno Bonfils en rêvait, il l’a fait : sur son blog, il explique que son idée était de disposer d’un ensemble d’outils "pour générer facilement des requêtes SPML". Il a donc créé une petite bibliothèque Java et écrit une série de scripts groovy associés.
En pratique
AddRequest request = new AddRequest()
request.init(“http://localhost:8080/SPMLServer/openspml2“)
request.createPsoId(“easyspmlDemo”)
request.addAttribute(“emailAddress”, “bbonfils@gmail.com”)
request.proceed()
request.dumpResponse()
Comme vous pouvez le constater, cela deviens très simple. De plus, dans ma lancé, je me suis dis pourquoi ne pas créer une servlet recevant des requêtes SPML pour les traduires dans des WebServices EJBCA. C’est maintenant chose faite. Bien que je n’implémente actuellement que la méthode addRequest, cela me permet de provisionner des entités depuis un producteur SPML, comme par exemple Sun Identity Manager. La “traduction” entre SPML et la couche EJBCA se fais au travers d’un script groovy (et oui, encore du groovy, groovy c’est le bien !), de la manière suivante :
def id
def attributes
def buffer
def ejbcaEntity
public void init(String id, HashMap attributes, UserDataVOWS ejbcaEntity)
this.id = id
this.attributes = attributes
this.ejbcaEntity = ejbcaEntity
public void preprocess()
buffer = “,UID=” + id + “,OU=staff,O=asyd dot net,C=FR”
public String getSubjectDN()
return “CN=” + id + buffer
public boolean proceed()
ejbcaEntity.setUsername(id)
ejbcaEntity.setEmail(attributes.get(“emailAddress”))
ejbcaEntity.setSubjectDN(getSubjectDN())
ejbcaEntity.setCaName(“DemoCA”)
ejbcaEntity.setCertificateProfileName(“ENDUSER”)
ejbcaEntity.setEndEntityProfileName(“EE_SPML_USER”)
ejbcaEntity.setTokenType(“P12″)
ejbcaEntity.setSendNotification(true)
return true
Plus d’information disponible sur devel.asyd.net :
Actuellement le code est plutôt un POC que production ready, mais avec un peu de chance cela ne saurait tarder, et après tout ca permet déjà de faire des choses sympas !
Visitez le blog de Bruno Bonfils.
Via Planet.linagora.com
(Vous souhaitez reproduire cet article ?)


