[Java + WebService] Creazione Utenti esterna da Liferay
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-09-2012 02:58 AM
Salve,
io dovrei creare in Liferay un Hook che dopo la creazione dell'utente in automatico mi crea un utente in alfresco.
Ho creato questa classe che contatta i web service di alfresco.
Invio un JSON con i parametri della creazione utente e l'autenticazione la faccio attraverso il nome utente e la password.
Se utilizzo il comando da terminale CURL la creazione dell'utente va a buon fine.
Questo codice mi ritorna come responseCode 400. Qualcuno sa darmi un aiuto?
Grazie e Buon Lavoro
io dovrei creare in Liferay un Hook che dopo la creazione dell'utente in automatico mi crea un utente in alfresco.
Ho creato questa classe che contatta i web service di alfresco.
Invio un JSON con i parametri della creazione utente e l'autenticazione la faccio attraverso il nome utente e la password.
Se utilizzo il comando da terminale CURL la creazione dell'utente va a buon fine.
Questo codice mi ritorna come responseCode 400. Qualcuno sa darmi un aiuto?
String _userName = username; String _password = password; String _firstName = fristname; String _lastName = lastname; String _mail = mail; String _disableAccount = "false"; String _quota = "-1"; String urlParameters = "{ \"username\" : \"" + _userName +"\", \"password\" : \"" + _password +"\"" + ",\"firstName\" : \"" + _firstName +"\", \"lastName\" : \"" + _lastName +"\"" + ",\"email\" : " + _mail + ",\"disableAccount\" : false , \"quota\" : -1 ,\"groups\":[] }"; //System.out.println("——-> " + urlParameters); // {"userName":"jack","password":"1111","firstName":"jack","lastName":"den","email":"test@test.net","disableAccount":false,"quota":-1,"groups":[]}; //urlParameters ="{\"username\":\"jack\",\"password\":\"jack\",\"firstName\":\"jack\",\"lastName\":\"jack\",\"email\":jack@jack.it,\"disableAccount\":false,\"quota\":-1,\"groups\":[]};"; int _resultCode = 0; String _userNameLogin = "admin"; String _passwordLogin = "admin"; URL url; HttpURLConnection connection = null; try { //JSON che verrà inviato alla post per la login //String urlParameters = "{ \"username\" : \"" + _userName +"\", \"password\" : \"" + _password +"\" }"; // Apri la connessione url = new URL("http://localhost:8080/alfresco/service/api/people"); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); //Imposto autenticazione BASE64Encoder enc = new sun.misc.BASE64Encoder(); String userpassword = _userNameLogin + ":" + _passwordLogin; String encodedAuthorization = enc.encode( userpassword.getBytes() ); connection.setRequestProperty("Authorization", "Basic "+ encodedAuthorization); // String ticket = this.autorizathionUser(_userNameLogin, _passwordLogin); connection.setRequestProperty("Content-Type", "application/json"); connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length)); connection.setRequestProperty("Content-Language", "en-US");// connection.setRequestProperty("ticket", ticket); connection.setUseCaches(false); connection.setDoInput(true); connection.setDoOutput(true); // Invia la richiesta DataOutputStream wr = new DataOutputStream(connection.getOutputStream()); wr.writeBytes(urlParameters); wr.flush(); wr.close(); // OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream());// osw.write(urlParameters);// osw.close(); connection.connect(); _resultCode = connection.getResponseCode(); } catch (Exception e) { e.printStackTrace(); return _resultCode; } finally { if (connection != null) { connection.disconnect(); } } return _resultCode; }
Grazie e Buon Lavoro
Labels:
- Labels:
-
Archive
2 REPLIES 2
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-21-2012 08:57 AM
Considera che tipicamente questo scenario è fattibile utilizzando uno storage condiviso tra LifeRay e Alfresco, tipicamente LDAP e quindi non servirebbe nemmeno sviluppare per questo. Basterebbe configurare la sincronizzazione degli utenti tra i due prodotti.
Guardando la tua implementazione credo manchi l'impostazione del HTTP Header, ti consiglio di utilizzare Apache HttpClient come libreria di riferimento per effettuare chiamate HTTP da Java.
Spero possa aiutarti
Guardando la tua implementazione credo manchi l'impostazione del HTTP Header, ti consiglio di utilizzare Apache HttpClient come libreria di riferimento per effettuare chiamate HTTP da Java.
Spero possa aiutarti

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-09-2012 06:52 AM
Ho risolto creado un WebScritpt ad HOC.. non era previsto l'utilizzo di LDAP

