ansible-roles/smartgears/smartgears/files/TokenGenerator.java

53 lines
1.7 KiB
Java

import static org.gcube.common.authorization.client.Constants.authorizationService;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.gcube.common.authorization.client.proxy.AuthorizationProxy;
import org.gcube.common.authorization.library.provider.ContainerInfo;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
public class TokenGenerator {
//call with parameters : host port filePath adminToken1 ... adminTokenN
public static void main(String[] args) {
String host = args[0];
int port = Integer.parseInt(args[1]);
File file = new File(args[2]);
try {
file.createNewFile();
} catch (IOException e1) {
System.out.println("error creating file "+file.getAbsolutePath());
e1.printStackTrace();
}
ContainerInfo containerInfo = new ContainerInfo(host, port);
AuthorizationProxy proxy = authorizationService();
try(FileWriter fw = new FileWriter(file)){
for (int index =3; index<args.length; index++ ){
SecurityTokenProvider.instance.set(args[index]);
try {
String token = proxy.requestActivation(containerInfo);
fw.write("<token>"+token+"</token>");
} catch (Exception e) {
System.out.println("error generating token for context "+args[index]);
} finally{
SecurityTokenProvider.instance.reset();
}
}
} catch (Exception e) {
System.out.println("error writing file "+file.getAbsolutePath());
e.printStackTrace();
}
}
}