/* * oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text. * * Copyright (c) 2014, Gluu */ package org.xdi.oxauth.dev.duo; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.util.List; import org.apache.commons.io.IOUtils; import org.codehaus.jackson.map.ObjectMapper; import org.testng.annotations.Test; import org.xdi.oxauth.model.config.CustomProperty; import org.xdi.oxauth.model.config.oxIDPAuthConf; /** * @author Yuriy Zabrovarnyy * @version 0.9, 28/12/2012 */ public class PythonToLdapString /* extends BaseComponentTest */ { public static final String SCRIPT_FIELD_NAME = "script.__$__customAuthenticationScript__$__"; // @Override // public void beforeClass() { // // } // // @Override // public void afterClass() { // // } // VIEW: // u:\own\java\opendj-2.4.4\OpenDJ\bat\ldapsearch.bat -h localhost -p 1636 // -Z -X -D "cn=directory manager" -w secret -b "ou=appliances,o=gluu" // "inum=@!1111!0002!4907" // MODIFY: // u:\own\java\opendj-2.4.4\OpenDJ\bat\ldapmodify.bat -h localhost -p 1636 // -Z -X -D "cn=directory manager" -w secret -f // U:\own\project\oxAuth\Server\src\test\java\org\xdi\oxauth\dev\duo\script.ldif @Test public void test() throws IOException { final File f = new File("U:\\own\\project\\oxAuth\\Server\\integrations\\duo\\ExternalAuthenticator.py"); final String pythonScript = IOUtils.toString(new FileInputStream(f)); System.out.println("Python script: \n" + pythonScript); final List<CustomProperty> fields = new ArrayList<CustomProperty>(); fields.add(createAttribute("property.duo_host", "api-fa928e64.duosecurity.com")); fields.add(createAttribute("property.duo_ikey", "DIT2906CETIMKHE1QND8")); fields.add(createAttribute("property.duo_skey", "cjNn9R4QvQV0R2Mynw2CauCUesojuR3cPGDoVygM")); fields.add(createAttribute("property.duo_akey", "6f88ca3dea7ac88a514cdef7c18021678ccaf0e1")); fields.add(createAttribute(SCRIPT_FIELD_NAME, pythonScript)); final oxIDPAuthConf c = new oxIDPAuthConf(); c.setType("customAuthentication"); c.setName("duo"); c.setEnabled(true); c.setLevel(1); c.setPriority(1); c.setFields(fields); final String json = getJSONString(c); System.out.println("JSON: \n" + json); final oxIDPAuthConf fromJson = fromJSON(json); for (CustomProperty attr : fromJson.getFields()) { if (attr.getName().equals(SCRIPT_FIELD_NAME)) { System.out.println("Script from json: \n" + attr.getValues().get(0)); } } } private CustomProperty createAttribute(String p_name, String p_value) { final List<String> v = new ArrayList<String>(); v.add(p_value); final CustomProperty result = new CustomProperty(); result.setName(p_name); result.setValues(v); return result; } private String getJSONString(oxIDPAuthConf conf) throws IOException { StringWriter sw = new StringWriter(); ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(sw, conf); return sw.toString(); } private oxIDPAuthConf fromJSON(String p_json) throws IOException { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(p_json, oxIDPAuthConf.class); } }