import Ġjava . util . Properties Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" drone security - library ") Ċ } Ċ Ċ tasks Ġ{ ĊĊĠĠĠ Ġval Ġproperties File Ġ= Ġfile ( project Dir . path Ġ+ ĠFile . separator Ġ+ Ġ" project . properties ") ĊĊĠĠĠ Ġregister (" create Certs ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdo First Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( System . getenv (" CI ") Ġ== Ġtrue . toString ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdr one Cert FileName Ġ= Ġ" Dr one . cert . pem " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠprivateKey FileName Ġ= Ġ" Dr one . private . key . pem " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot CA FileName Ġ= Ġ" root - CA . pem " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcert FolderPath Ġ= Ġmkdir (" certs ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdr one Cert Ġ= Ġfile ( cert FolderPath . path Ġ+ ĠFile . separator Ġ+ Ġdr one Cert FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠprivateKey Ġ= Ġfile ( cert FolderPath . path Ġ+ ĠFile . separator Ġ+ ĠprivateKey FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot CA Ġ= Ġfile ( cert FolderPath . path Ġ+ ĠFile . separator Ġ+ Ġroot CA FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġif Ġ( cert FolderPath . path . contains ( File . separator Ġ+ Ġ" user - application " Ġ+ ĠFile . separator )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Dr one Security : ĠUser " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Dr one Security : ĠDr one " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdr one Cert . append Text ( System . getenv (" DR ONE _ CERT ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprivateKey . append Text ( System . getenv (" PRIVATE _ KEY ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot CA . append Text ( System . getenv (" ROOT _ CA ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġendpoint Ġ= ĠSystem . getenv (" ENDPOINT ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Properties Ġ= ĠProperties () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Properties . setProperty (" certs FolderPath ", Ġcert FolderPath . path Ġ+ ĠFile . separator ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Properties . setProperty (" certificate File ", Ġdr one Cert FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Properties . setProperty (" privateKey File ", ĠprivateKey FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Properties . setProperty (" certificate Authority File ", Ġroot CA FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Properties . setProperty (" endpoint ", Ġendpoint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Properties . setProperty (" client ID ", Ġusername ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠoutputStream Ġ= Ġproperties File . output Stream () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Properties . store ( output Stream , Ġ" Connection Ġsettings ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠoutputStream . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġregister (" clear Certs ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( System . getenv (" CI ") Ġ== Ġtrue . toString ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcert FolderPath Ġ= Ġfile ( project Dir . path Ġ+ ĠFile . separator Ġ+ Ġ" certs ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties File . delete () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcert FolderPath . delete Re cursively () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On (" create Certs ") ĊĠĠĠĠĠĠĠ Ġfinal ized By (" clear Certs ") ĊĠĠĠ Ġ} Ċ } Ċ